Phải làm gì khi tôi gặp lỗi cố gắng đọc hoặc ghi bên ngoài đĩa 'hd0' Lỗi và Boot Repair không giải quyết được vấn đề?


35

Tôi đã cố gắng cài đặt Xubfox 13.10 trên một máy tính cũ. Tôi nhận thấy một số khó khăn trong quá trình cài đặt có thể liên quan đến các vấn đề của tôi. Đáng chú ý:

  1. Độ phân giải màn hình cực kỳ thấp. Các cửa sổ lớn hơn nhiều so với màn hình và tôi phải di chuyển chúng để đến nút "Tiếp theo".

  2. Con trỏ chuột là một màu mờ luôn luôn nhấp nháy.

Quá trình cài đặt kết thúc và tôi đã cố gắng khởi động lại máy tính. Ngay lập tức tôi nhận được:

error: attempt to read or write outside of disk 'hd0'. 
Entering rescue mode... 
grub rescue>

Tôi đã tạo một đĩa USB Repair Repair , khởi động nó và chọn sửa chữa mặc định. Ứng dụng nói với tôi rằng vấn đề đã được sửa chữa và nếu điều này không giải quyết được vấn đề của tôi, tôi nên hiển thị liên kết này cho ai đó có thể giúp tôi.

Tôi nên làm gì tiếp theo? Tôi đã thử cài đặt Ubuntu và Xubfox, cả hai đều không thành công.

CHỈNH SỬA:

Tôi tìm thấy một cách giải quyết.

  1. Lắp USB trực tiếp Xubfox
  2. Chọn "dùng thử Xubfox"
  3. Trong menu cài đặt, chọn "cài đặt Xubfox"

Điều này đã khắc phục vấn đề cho tôi. Vì nó đã được giải quyết nên tôi không thể kiểm tra câu trả lời.


(gần-) bản sao của Askubfox.com/questions/229715/ từ
Post

Câu trả lời:


36

Xác định vị trí phân vùng trong đó linux có mặt với sự trợ giúp của kỹ thuật sau

grub rescue > ls
(hd0) (hd0, msdos9)
grub rescue > ls (hd0,msdos9)/
grub rescue > ls (hd0,msdos8)/
grub rescue > ls (hd0,msdos5)/ # suppose this is root and bootloader of linux
grub rescue > ls (hd0,msdos5)/
grub rescue > set root=(hd0,msdos5)
grub rescue > set prefix=(hd0,msdos5)/boot/grub
grub rescue > insmod normal
grub rescue > normal

Bây giờ, menu khởi động của hệ thống xuất hiện. Khởi động vào linux.

sudo update-grub
sudo grub-install  /dev/sda # If the drive is hd0 the equivalent is sda, if it's hd1 then use sdb

Điều này sửa lỗi bộ tải khởi động.


17
Tôi không thấy những gì nên làm. Bạn chỉ định một địa ngục của rất nhiều lệnh, không có lệnh nào có ý nghĩa với tôi. Vui lòng thêm một chút văn bản giải thích! Tại sao bạn "đếm ngược" từ msdos9 xuống 5? Làm thế nào để bạn thấy rằng "đây là linux" ?? Trong trường hợp của tôi, nó hiển thị (hd0, msdos1)! Tôi không thể "đếm ngược" - và một khi tôi đặt gốc và tiền tố và thực hiện "insmod normal", tôi nhận được chính xác thông báo lỗi như trước. Lấy làm tiếc. Đây không phải là một câu trả lời bất cứ ai có thể làm việc với. :(
Zordid

13
Ngay sau khi tôi nhập, insmod normaltôi nhận được thông báo một lần nữa: "lỗi: cố gắng đọc hoặc ghi bên ngoài phân vùng."
dùng643722

2
bạn nói "giả sử đây là linux" mà không nói làm thế nào tôi có thể biết một linux nào. Bất cứ khi nào tôi gõ insmod bình thường, tôi lại nhận được "lỗi: hệ thống tập tin không xác định", điều này không hiệu quả với tôi. Ngoài ra, bạn có thể giải thích tại sao điều này xảy ra ở nơi đầu tiên?
msknapp

1
Điều tốt nhất tôi nhận được là một dấu nhắc khác. Menu không bao giờ bật lên.
jbo5112

2
Tôi đồng ý với @Zordid - chỉ là một danh sách các lệnh khó hiểu mà không có lời giải thích về những gì các lệnh này làm không chỉ là không đủ, nó có thể nguy hiểm.
Johsm

27

Đối với bất cứ ai khác có vấn đề này:

Điều này đã xảy ra với tôi khi cài đặt mới hoặc sửa chữa grub sẽ hoạt động và khởi động lại, nhưng lần sau khi tôi khởi động lại, nó sẽ nhận được "lỗi đọc lỗi" tương tự. Hầu hết thời gian tôi sẽ nhận được một nhân hoảng loạn và máy tính sẽ cần khởi động lại cứng.

Tôi đã làm theo một số lời khuyên và thực hiện cài đặt mới bằng các tùy chọn nâng cao (không sử dụng "xóa đĩa và cài đặt ubfox") bằng các cài đặt phân vùng này:

  1. Tạo phân vùng ext4 1 GB (1024 MB) ở đầu đĩa; gắn trong "/ boot"
  2. Tạo không gian cài đặt mong muốn của bạn trong ext4 được gắn vào "/" MINUS vùng trao đổi của bạn
  3. Sử dụng không gian còn lại để trao đổi. (TẤT CẢ các phân vùng sẽ là chính)
  4. Trong menu thả xuống cài đặt khởi động, chọn phân vùng "/ boot" của bạn. Không phải root ổ đĩa mặc định!

Điều này làm việc cho tôi khi các lệnh trong câu trả lời được chấp nhận đang nhận được "Hệ thống tập tin không được nhận dạng". Tôi đã kết thúc bằng cách sử dụng cùng một bộ hệ thống tệp, nhưng phân vùng chuyên dụng / khởi động nhỏ này là thứ đã khắc phục vấn đề của tôi. Cảm ơn.
GregHNZ

Có vẻ như điều này cũng hoạt động nếu / boot là phân vùng chính duy nhất.
Aaron Mason

Tham gia trang web này chỉ để nói rằng điều này cũng làm việc cho tôi. Phân vùng khởi động nhỏ là thứ tôi cần để làm việc này khi đặt Ubuntu trên ổ cứng ngoài. Cảm ơn!
rayryeng - Tái lập Monica

Nó giúp tôi: Tôi có một phân vùng lớn (> 5TB) / phân vùng, thêm phân vùng nhỏ / khởi động đã khắc phục sự cố
neutrinus

Có thể làm điều này mà không cần xóa phân vùng hiện có? Tôi có một phân vùng lớn với tất cả dữ liệu của tôi bắt đầu từ đầu đĩa.
cướp biển

6

Nó có thể được giải quyết dễ dàng thông qua lời nhắc cứu hộ Grub. Câu trả lời đầu tiên không hoàn toàn đầy đủ và lúc đầu tôi cũng gặp lỗi tương tự. Đây là cách nó làm việc:

1 chúng ta cần tìm phân vùng chính. Đây sẽ là nơi chứa các tệp thiết yếu cần thiết cho linux để khởi động, vì vậy chúng tôi nhập vào đây -

Grub> ls

Bây giờ bạn sẽ thấy một danh sách có thể so sánh với (hd0) (hd0, msdos5) (hd0, msdos1). Lưu ý rằng bạn có thể có các phân vùng khác với bản thân mình, cũng như nhiều ổ đĩa, nhưng quá trình này là như nhau.

Bây giờ tìm kiếm các phân vùng để tìm chính -

Grub> ls (hd0)
Grub> ls (hd0,msdos5)
Grub> ls (hd0,msdos1)

Cho đến khi grub xuất ra một danh sách các tệp trên phân vùng đó hoặc hiển thị loại hệ thống tệp và ngày sửa đổi cuối cùng.

Thứ 2 chúng ta cần thiết lập một vài thứ sau khi tìm thấy phân vùng chính của mình -

Grub> set prefix=(hd0,msdos1)/boot/grub
Grub> set root=(hd0,msdos1)
Grub> set

Khi lệnh set cuối được thực thi, Grub sẽ đưa ra một danh sách các tham số khác nhau. Bây giờ hãy kiểm tra xem chúng tôi đã đặt gốc và tiền tố đúng chưa -

Grub> ls /boot

Grub sẽ xuất ra một danh sách các tệp có trong / boot.

Lần thứ 3 chúng ta cần thiết lập điểm gắn kết và tải kernel -

Grub> linux /vmlinuz root=/dev/sda1
Grub> initrd /initrd.img

Và cuối cùng, chúng tôi khởi động hệ thống -

Grub> boot

Nếu bạn kết thúc việc khởi động vào shell busybox, chỉ cần nhập fsck /dev/sda1. Sau đó chỉ cần nhập exitvà hệ thống của bạn sẽ khởi động bình thường.


Cứu mạng tôi, cảm ơn!
Timmah

3

Tôi đã giải quyết vấn đề này bằng cách di chuyển phân vùng Linux của tôi đến gần đầu đĩa cứng. Khi phân vùng linux ở cuối ổ cứng 120 Gb của tôi (40 Gb từ cuối), tôi đã gặp vấn đề này. Không một giải pháp nào không hiệu quả. Sau khi di chuyển phân vùng linux sang không gian từ 40Gb đến 80Gb, vấn đề đã biến mất.


1
Làm thế nào để một người di chuyển phân vùng Linux đến đầu đĩa?
cướp biển

1

Sau khi tìm kiếm nhiều giờ tôi đã thử giải pháp này và nó hoạt động tốt, để cài đặt lại kernel:

sudo dpkg --configure -a
sudo apt-get install --reinstall linux-image-$(uname -r)

0

Tôi đang đạt được vấn đề này khi tôi đã sử dụng đĩa vmdk từ gói máy ảo OVA trong virt-manager / QEMU / KVM. Máy ảo đã bị lỗi với thông báo lỗi này.

Giải pháp là chuyển đổi vmdk thành qcow2:

qemu-img convert -O qcow2 MyAppliance-disk1.vmdk MyAppliance.qcow2

Và để sử dụng hình ảnh chuyển đổi trong virt-manager thay thế.


0

Tôi gặp vấn đề này khi thử cài đặt Ubuntu 18 Server và Xubfox 18 trên máy chủ Dell. Chọn UEFI thay vì Legacy trong menu BIOS đã sửa nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.