Không thể có đường dẫn chuẩn / bò


43

Tôi đang cố gắng cài đặt Ubuntu 12.10 trong một thời gian khá lâu và lần lượt vượt qua mọi rào cản. Bây giờ tôi đang ở trong một tình huống như sau.

Tôi đã có một PC và 10 GB HDD sẽ hoàn toàn dành riêng cho Ubuntu vì vậy không có tùy chọn Wubi và khởi động kép.

Tôi đã cố gắng cài đặt từ DVD, nhưng nó bị kẹt ở lỗi "Hết tần số". Vì vậy, tôi đã phải thích ứng với tùy chọn khởi động USB. Nhưng PC của tôi không có khả năng khởi động USB, vì vậy cách giải quyết là "Plop Boot Manager". Vì vậy, tôi đang làm thủ tục cài đặt như sau:

  1. bắt đầu từ một ổ đĩa CD đã được cài đặt.
  2. chọn để khởi động USB trong tùy chọn plop.
  3. khởi động bắt đầu từ USB.
  4. màn hình cuối cùng đưa ra lỗi "hết tần số"
  5. nhấn Shift+ Alt+ F1để lấy thiết bị đầu cuối.
  6. mở grub với sudo nano /etc/default/grub.
  7. làm những thay đổi cần thiết.
  8. sudo update-grub.

Bây giờ ở đây tôi nhận được lỗi như sau:

/usr/sbin/grub-probe:error:failed to get canonical path of /cow.

Hệ thống của tôi là

P4 3.06 GHz, ram 1 GB, ổ cứng 10 GB không có HĐH, giám sát CRT lg StudioWorks (7 tuổi). Mobo Mercury P4 266a NDMx (tương đương 865). Toàn bộ hệ thống hoàn toàn hoạt động trong điều kiện XP, nhưng nó không có khả năng khởi động USB và tất cả các thiết bị khác đều hoạt động hoàn hảo.

Tôi nên làm gì tiếp theo?


Máy tính của bạn có Yêu cầu hệ thống tối thiểu được đề xuất để chạy Ubuntu không? Tôi đã gặp sự cố khi cài đặt 12.04 cho các máy có RAM dưới 1GB.
CSCameron

Có, bây giờ tôi đã thêm đặc tả hệ thống của mình để đặt câu hỏi.
ulkaNCST

Askubfox.com/questions/207663/ có thể đáng để thử.
Rinzwind

5
Đầu tiên gắn ổ cứng của bạn vào một số thư mục, nói /mntvà sau đó chrootđến /mnt.
màu xanh lá cây

Câu trả lời:


30

Sau khi khởi động từ đĩa CD trực tiếp Ubuntu (Đã thử 14.04 và 16.04), tôi đã có thể khắc phục sự cố này bằng cách chạy update-grub chroot'ed vào phân vùng grub. (Thay thế /dev/sda1bên dưới với bất kỳ phân vùng nào bạn đã cài đặt grub trên. Tất cả các lệnh là root.)

mkdir /mnt/chrootdir
mount /dev/sda1 /mnt/chrootdir
for dir in proc dev sys etc bin sbin var usr lib lib64 tmp; do
    mkdir /mnt/chrootdir/$dir && mount --bind /$dir /mnt/chrootdir/$dir
done
chroot /mnt/chrootdir
update-grub2  # inside chroot

2
Cố gắng chạy mount cho tôi lỗi:, NTFS signature is missing.đó là số lẻ, vì nó phải là Ext4, không phải NTFS ...
Cerin

@Cerin, tôi nhấn mạnh / dev / sda1 là phân vùng phù hợp với tôi, nhưng rõ ràng là không dành cho bạn, nếu âm lượng đó là NTFS.
Nathan Kidd

Giải pháp của bạn là khó hiểu. Bạn có cần chạy phần đầu tiên và phần thứ hai từ bên trong phần thứ nhất không? Hay bạn vứt bỏ mọi thứ bạn đã làm trong phần đầu tiên và chỉ chạy phần thứ hai? Tại sao bạn gắn cả / dev / sda và / dev / sda1?
Cerin

2
Tôi đã làm theo hướng dẫn của bạn và kết thúc với việc /usr/sbin/grub-probe: error: failed to get canonical path of '/boot'.tôi chỉ có /bootphân vùng trên ổ đĩa khởi động, phần còn lại là ở nơi khác.
Sled

1
Phải làm thêm grub-install /dev/sdatrước update-grub, sau đó nó hoạt động!
kiw

11

Tìm ổ đĩa của bạn được cho là khởi động cùng

mount

Hoặc là

parted -l

Hoặc là

fdisk /dev/sda

Và gõ p để liệt kê các phân vùng, tìm loại 83.

. insmod raid5 và sau đó là mdadm -A --scan) và bạn sẽ sử dụng / dev / md0 hoặc / dev / mapper / my-vg thay vì / dev / sda

sau đó thử gắn nó

mkdir /mnt
mount /dev/sda1 /mnt
cd /mnt
ls -l

Đây có phải là ổ đĩa của bạn? Mát mẻ!

grub-install --recheck --root-directory=/mnt /dev/sda 

(Hoặc bất cứ thứ gì / dev điều khiển root của bạn, với đường dẫn được gắn kết của nó)

grub-install --recheck --root-directory=/mnt /dev/sda --force

(Buộc nó nếu nó không thích phân vùng của bạn.)

Bây giờ, nó sẽ khởi động vào grub và bạn có thể sử dụng các lệnh grub để khởi động, sau khi khởi động lại và chọn đúng ổ đĩa khởi động từ Thiết lập BIOS, hoặc bằng cách nhấn ESC hoặc F12 tùy thuộc vào BIOS của bạn và sau đó bạn có đủ nhanh không lời nhắc Grub - bạn có thể sử dụng hoàn thành tab để tìm nó nếu không phải (hd0,1) mà là (hd1,3) hoặc một cái gì đó khác, nhưng hãy cẩn thận, đôi khi hoàn thành tab bị treo trong vài giây nếu grub không thể đọc ổ đĩa .

insmod linux
ls
root=(hd0,1)
linux /boot/vmlinuz root=/dev/sda1
initrd /boot/initrd
boot

Hoặc, hy vọng bạn vẫn có một tệp grub.cfg nguyên vẹn ... hoặc có thể điều này sẽ hoạt động:

grub-mkconfig -o /mnt/boot/grub/grub.cfg

1
Nó không giống như phân vùng của tôi, nhưng -fkhông hoạt động. Tôi đã phải sử dụng--force
RM

để khởi động từ GRUB, trên hệ thống của tôi, tôi đã phải thay đổi như trên: linux /vmlinuz root=/dev/sda1 (tức là thư mục gốc) initrd /boot/initrd.img (tức là thêm .img)
Warner

6

Giải pháp sửa đổi dựa trên mã ở trên

Giải pháp từ phía trên sẽ không hoạt động hoàn toàn không có vấn đề vì nó gắn phân vùng khởi động vào / (root) của hệ thống tệp. Điều đó làm cho grub phàn nàn rằng / boot không tồn tại, tất nhiên. Điều này sẽ khắc phục vấn đề đó:

mkdir /mnt/chrootdir
mkdir /mnt/chrootdir/boot
mount /dev/sda1 /mnt/chrootdir/boot
for dir in proc dev sys etc bin sbin var usr lib lib64 tmp; do mkdir /mnt/chrootdir/$dir && mount --bind /$dir /mnt/chrootdir/$dir ; done
chroot /mnt/chrootdir
update-grub2  # inside chroot

Như bạn thấy tôi cũng đã loại bỏ các ngắt dòng để dễ thực hiện hơn cho mọi người.

Một giải pháp khác (đơn giản hơn)

Nếu bạn tiếp tục gặp sự cố khiến nó hoạt động, bạn nên tìm cách sao chép phân vùng / boot vào phân vùng / (root). Để bắt đầu hệ thống của bạn với dvd khởi động trực tiếp Ubuntu và mở thiết bị đầu cuối. Bên trong nó gõ:

sudo su
fdisk -l

Để tìm ra những phân vùng bạn có. Trong trường hợp của tôi, sda1 là phân vùng / boot của tôi có dung lượng lớn khoảng 250 MB và sda5 có dung lượng khoảng 500 GB. Tôi sử dụng các giá trị này trong các lệnh dưới đây:

mkdir /mnt/boot/
mount /dev/sda1 /mnt/boot/

mkdir /mnt/root/
mount /dev/sda5 /mnt/root/

cp -R /mnt/boot/ /mnt/root/boot/

Đặt cờ khởi động cho phân vùng dữ liệu và xóa nó cho phân vùng khởi động:

fdisk /dev/sda
b -> 1 (unset the bootable flag for the first partition)
b -> 5 (set the bootable flag for the fifth partition)
w -> write changes to the MBR

Bây giờ máy tính của bạn sẽ nhìn vào bên trong sda5 cho các tệp khởi động. Đã đến lúc phải thực hiện lại lần nữa, lần này với một số thư mục cần thiết cho grub và đã được tạo bởi đĩa sống Ubuntu của bạn rồi:

mkdir /mnt/chrootdir/
mkdir /mnt/chrootdir/dev/
mkdir /mnt/chrootdir/proc/
mkdir /mnt/chrootdir/sys/

mount /dev/sda5 /mnt/chrootdir/
mount --bind /dev/ /mnt/chrootdir/dev/
mount --bind /proc/ /mnt/chrootdir/proc/
mount --bind /sys/ /mnt/chrootdir/sys/

chroot /mnt/chrootdir/

grub-install /dev/sda

Cài đặt xong. Không có lỗi báo cáo.

Nếu bạn không thấy thông báo rằng tệp grub.cnf được tạo thì cũng chạy lệnh cập nhật:

update-grub2 /dev/sda

Bây giờ bạn có thể khởi động lại một cách an toàn và thấy menu khởi động nổi tiếng xuất hiện lại.

Giải pháp này là giải pháp duy nhất phù hợp với tôi sau khi chuyển từ máy chủ vật lý sang máy ảo. Tôi hi vọng ai đó thấy nó hữu ích!


0

Tôi biết, đó là một vấn đề cũ, nhưng tôi đã gặp rắc rối tương tự ngày hôm nay với phiên bản thực tế của mint-linux (dựa trên Ubuntu). Tôi tìm thấy một giải pháp rất đơn giản! :-) Tắt kết nối internet trong lần cài đặt đầu tiên. Điều này dừng tải của một grub2 không tương thích. Thực hiện cập nhật tất cả sau khi cài đặt xong.


0

Có cùng một lỗi. Vấn đề duy nhất là / bò vẫn được gắn trên /.

Một chút sudo umount / bò đã làm điều đó.


-6

Đó là lệnh update-grub sẽ cung cấp cho bạn lỗi khi sử dụng nó từ một đĩa CD trực tiếp. Tôi đã phải đối mặt với một tình huống tương tự khi tôi đang thực hiện một cuộc giải cứu grub. Vấn đề bạn gặp phải là các lệnh update-grub và grub-install không hoạt động trực tiếp dưới cd trực tiếp (tôi không biết tại sao). Vì vậy, bạn phải đi đến / usr / sbin nơi các lệnh được đặt và thực thi chúng từ đó (tức là ./update-grub).


Không, bạn phải gắn đĩa cứng và chroot vào nó, như @ green7 đã nói.
psusi

phương pháp của tôi cũng hoạt động. thử nó. nó đơn giản hơn
aveemashfaq

1
Bạn không có một phương pháp. / usr / sbin đã có trên đường dẫn rồi nên không cần cd ở đó. Bạn không thể chạy grub-install và update-grub trực tiếp từ cd trực tiếp (như bạn đã lưu ý) vì nó cố gắng thiết lập grub để khởi động hệ thống hiện tại, đó sẽ là cd trực tiếp, thay vì os được cài đặt trên cứng lái xe.
psusi

Điều này, tất nhiên, không hoạt động. Bạn nhận được lỗi "không thể có đường dẫn / bò". Và những thứ về cd-ing to / usr / sbin ... oh boy.
dan3

Hãy thử mọi người. nó làm việc cho tôi mọi lúc
aveemashfaq
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.