ไม่สามารถรับเส้นทางที่ยอมรับได้ของ / cow


42

ฉันพยายามติดตั้ง Ubuntu 12.10 สักพักและผ่านอุปสรรคไปทีละตัว ตอนนี้ฉันอยู่ในสถานการณ์ดังต่อไปนี้

ฉันมีพีซีและ HDD 10 GB ซึ่งจะทุ่มเทให้กับ Ubuntu โดยสิ้นเชิงดังนั้นจึงไม่มีตัวเลือกของ Wubi และบูตคู่

ฉันพยายามติดตั้งจาก DVD แต่เกิดข้อผิดพลาด "ผิดความถี่" ดังนั้นฉันต้องปรับตัวสำหรับตัวเลือกการบูต USB แต่พีซีของฉัน USB ไม่สามารถบูตได้ดังนั้นวิธีแก้ปัญหาคือ "Plop Boot Manager" ดังนั้นฉันกำลังทำขั้นตอนการติดตั้งดังนี้:

  1. เริ่มต้นจากไดรฟ์ซีดีที่มีการติดตั้งป๋อม
  2. การเลือกสำหรับการบูต USB ในตัวเลือกป๋อม
  3. การบูทเริ่มต้นจาก USB
  4. จอภาพในที่สุดให้ข้อผิดพลาด "ออกจากความถี่"
  5. กดShift+ Alt+ F1เพื่อรับเครื่อง
  6. sudo nano /etc/default/grubเปิดด้วงกับ
  7. ทำการเปลี่ยนแปลงที่จำเป็น
  8. sudo update-grub.

ตอนนี้ที่นี่ฉันได้รับข้อผิดพลาดดังนี้:

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

ระบบของฉันคือ

P4 3.06 GHz, ram 1 GB, HDD 10 GB ที่ไม่มีระบบปฏิบัติการ, ตรวจสอบ CRT lg StudioWorks (อายุ 7 ปี) Mobo Mercury P4 266a NDMx (เทียบเท่า 865) ระบบทั้งหมดนั้นสมบูรณ์แบบในสภาพการทำงานภายใต้ XP แต่มันเป็น USB ที่ไม่สามารถบู๊ตได้และอุปกรณ์อื่น ๆ ทั้งหมดทำงานได้อย่างสมบูรณ์แบบ

ฉันควรทำอย่างไรต่อไป


คอมพิวเตอร์ของคุณมีข้อกำหนดขั้นต่ำของระบบที่แนะนำในการใช้งาน Ubuntu หรือไม่? ฉันมีปัญหาในการติดตั้ง 12.04 ไปยังเครื่องที่มี RAM น้อยกว่า 1GB
CSCameron

ใช่ตอนนี้ฉันได้เพิ่มข้อกำหนดของระบบไปที่คำถาม
ulkaNCST

askubuntu.com/questions/207663/…อาจจะน่าลอง
Rinzwind

5
ครั้งแรกที่ติดตั้งฮาร์ดไดรฟ์ของคุณไปยังโฟลเดอร์บางพูด/mntแล้วไปchroot /mnt
สีเขียว

คำตอบ:


29

หลังจากบูทจาก Ubuntu สด CD (พยายาม 14.04 และ 16.04) ฉันสามารถแก้ไขปัญหานี้ได้ด้วยการเรียกใช้ update-grub chroot'ed ไปยังพาร์ติชั่นด้วง (ทดแทน/dev/sda1ด้านล่างด้วยพาร์ทิชันอะไรก็ตามที่คุณติดตั้งด้วงไว้คำสั่งทั้งหมดเป็นรูท)

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
ความพยายามในการใช้งาน mount ทำให้ฉันเกิดข้อผิดพลาด: NTFS signature is missing.ซึ่งแปลกเพราะมันควรเป็น Ext4 ไม่ใช่ NTFS ...
Cerin

@Cerin ฉันเน้น / dev / sda1 เป็นพาร์ทิชันที่เหมาะสมสำหรับฉัน แต่เห็นได้ชัดว่าไม่ใช่สำหรับคุณถ้าไดรฟ์ข้อมูลนั้นเป็น NTFS
นาธาน Kidd

ทางออกของคุณสับสน คุณจำเป็นต้องเรียกใช้ส่วนแรกและส่วนที่สองจากภายใน chroot ของส่วนแรกหรือไม่? หรือคุณทิ้งทุกสิ่งที่คุณทำในส่วนแรกและรันเฉพาะส่วนที่สอง? ทำไมคุณถึงเมาท์ทั้ง / dev / sda และ / dev / sda1
Cerin

2
ฉันทำตามคำแนะนำของคุณและจบลงด้วยการ/usr/sbin/grub-probe: error: failed to get canonical path of '/boot'.มี/bootพาร์ติชันของฉันเฉพาะในไดรฟ์บูตส่วนที่เหลืออยู่ที่อื่น
เลื่อน

1
ต้องทำเพิ่มเติมgrub-install /dev/sdaก่อนupdate-grubจากนั้นก็ใช้งานได้!
กีวี

10

ค้นหาไดรฟ์ที่ควรบูทด้วย

mount

หรือ

parted -l

หรือ

fdisk /dev/sda

และพิมพ์ p เพื่อแสดงรายการพาร์ติชันค้นหาประเภท 83

(หากคุณมี Fedora คุณอาจต้องใช้คำสั่ง "vgs" และ "lvs" และหากคุณมี mdraid คุณอาจต้อง "cat / proc / mdstat" หรือ mdadm -A - สแกนหรือ insmod raid1 หรือ insmod raid5 แล้ว mdadm -A - สแกน) และคุณจะใช้ / dev / md0 หรือ / dev / mapper / my-vg แทน / dev / sda

จากนั้นลองติดตั้ง

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

นี่คือไดรฟ์ของคุณหรือไม่ เย็น!

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

(หรืออะไรก็ตามที่ไดรฟ์ / dev ของคุณคือด้วยมันติดตั้งเส้นทาง)

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

(บังคับถ้าไม่ชอบพาร์ติชันของคุณ)

ตอนนี้มันควรบูทเป็นด้วงและคุณสามารถใช้คำสั่งด้วงเพื่อบู๊ตหลังจากรีบูตและเลือกไดรฟ์บูตที่ถูกต้องจากการตั้งค่า BIOS หรือโดยกด ESC หรือ F12 ขึ้นอยู่กับ BIOS ของคุณและไม่ว่าคุณจะเร็วพอหรือไม่ พรอมต์ Grub - คุณสามารถใช้ความสมบูรณ์ของแท็บเพื่อค้นหาว่ามันไม่ใช่ (hd0,1) แต่ (hd1,3) หรืออย่างอื่นแทน แต่ระวังบางครั้งการทำแท็บให้หยุดทำงานในไม่กี่วินาทีถ้าด้วงไม่สามารถอ่านไดรฟ์ .

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

หรือหวังว่าคุณจะยังคงมีไฟล์ grub.cfg เหมือนเดิม ... หรืออาจเป็นไปได้:

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

1
มันไม่ชอบพาร์ติชันของฉัน แต่-fไม่ได้ทำงาน ฉันต้องใช้--force
RM

เพื่อบูตจากด้วงในระบบของฉันฉันมีการเปลี่ยนแปลงดังกล่าวข้างต้นเช่นดังนั้น: linux /vmlinuz root=/dev/sda1 (เช่นโฟลเดอร์ราก) initrd /boot/initrd.img (เช่นเพิ่ม.img)
วอร์เนอร์

5

โซลูชันที่แก้ไขแล้วตามโค้ดด้านบน

การแก้ปัญหาจากด้านบนจะไม่สามารถทำงานได้อย่างสมบูรณ์โดยไม่มีปัญหาเพราะมันจะติดตั้งพาร์ติชันสำหรับบู๊ตลงใน / (root) ของระบบไฟล์ นั่นทำให้ด้วงบ่นว่า / boot ไม่มีอยู่แน่นอน สิ่งนี้จะแก้ไขปัญหานั้นได้:

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

อย่างที่คุณเห็นฉันยังลบตัวแบ่งบรรทัดเพื่อให้ทุกคนสามารถดำเนินการได้ง่ายขึ้น

โซลูชันอื่น (เรียบง่าย)

หากคุณยังคงมีปัญหาในการทำให้มันใช้งานได้คุณควรมองไปที่การคัดลอกพาร์ติชั่น / boot ลงในพาร์ติชั่น / (root) สำหรับการเริ่มต้นระบบของคุณด้วย Ubuntu live boot dvd และเปิด terminal ข้างในประเภท:

sudo su
fdisk -l

เพื่อค้นหาพาร์ติชั่นที่คุณมี ในกรณีของฉัน sda1 คือพาร์ทิชันของฉัน / boot ซึ่งมีขนาดใหญ่ประมาณ 250MB และ sda5 ซึ่งมีขนาดประมาณ 500GB ฉันใช้ค่าเหล่านี้ในคำสั่งด้านล่าง:

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

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

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

ตั้งค่าสถานะบูตได้สำหรับพาร์ติชันข้อมูลและลบออกสำหรับพาร์ติชันสำหรับเริ่มระบบ:

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

คอมพิวเตอร์ของคุณจะมองเข้าไปใน sda5 เพื่อหาไฟล์สำหรับบู๊ต เวลาที่จะทำการ chrooting อีกครั้งคราวนี้มีบางโฟลเดอร์ที่จำเป็นสำหรับด้วงและสร้างโดย Ubuntu live disk ของคุณแล้ว:

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

การติดตั้งเสร็จสิ้น ไม่มีรายงานข้อผิดพลาด

หากคุณไม่เห็นข้อความว่าสร้างไฟล์ grub.cnf จากนั้นให้รันคำสั่ง update:

update-grub2 /dev/sda

ตอนนี้คุณสามารถรีบู๊ตและดูเมนูการบูตที่รู้จักกันดีปรากฏขึ้นอีกครั้ง

โซลูชันนี้เป็นโซลูชันเดียวที่ทำงานกับฉันหลังจากโอนย้ายจากเซิร์ฟเวอร์จริงไปยังเครื่องเสมือน ฉันหวังว่าบางคนพบว่ามีประโยชน์นี้!


0

ฉันรู้ว่ามันเป็นปัญหาเก่า แต่วันนี้ฉันมีปัญหาแบบเดียวกันกับรุ่นมินต์ - ลินุกซ์จริง (ใช้ Ubuntu) ฉันพบทางออกที่ง่ายมาก! :-) ถอดการเชื่อมต่ออินเทอร์เน็ตระหว่างการติดตั้งครั้งแรก หยุดการโหลด grub2 ที่ไม่รองรับ ทำให้การอัพเดตทั้งหมดหลังจากการติดตั้งเสร็จสิ้น


0

มีข้อผิดพลาดเดียวกัน ปัญหาเดียวก็คือ / วัวยังคงติดตั้งอยู่บน /

เล็ก ๆ น้อย ๆsudo umount / วัวไม่หลอกลวง


-6

มันเป็นคำสั่ง update-grub ซึ่งจะทำให้คุณมีข้อผิดพลาดเมื่อใช้มันจากซีดีสด ฉันต้องเผชิญกับสถานการณ์ที่คล้ายกันเมื่อฉันช่วยด้วง ปัญหาที่คุณมีคือคำสั่ง update-grub และ grub-install ไม่ทำงานโดยตรงภายใต้ live cd (ฉันไม่รู้ว่าทำไม) ดังนั้นคุณต้องไปที่ / usr / sbin ซึ่งเป็นที่ตั้งของคำสั่งและเรียกใช้งานจากที่นั่น (เช่น. /update-grub)


ไม่ได้คุณต้องติดตั้งฮาร์ดดิสก์และ chroot ลงในนั้นเช่น @ green7 กล่าว
psusi

วิธีการของฉันยังใช้งานได้ ลองมัน. มันง่ายกว่า
aveemashfaq

1
คุณไม่มีวิธี / usr / sbin อยู่ในเส้นทางแล้วจึงไม่จำเป็นต้องมีซีดี คุณไม่สามารถเรียกใช้ grub-install และ update-grub ได้โดยตรงจาก live cd (ดังที่คุณบันทึกไว้) เพราะมันพยายามตั้งค่า grub ให้บู๊ตระบบปัจจุบันซึ่งจะเป็น live cd แทนที่จะเป็นระบบปฏิบัติการที่ติดตั้งบนฮาร์ดไดรฟ์ ขับรถ
psusi

แน่นอนนี้ไม่ทำงาน คุณได้รับข้อผิดพลาด "ไม่สามารถรับเส้นทางที่ผิดพลาดของ / cow" และสิ่งที่เกี่ยวกับ cd-ing ถึง / usr / sbin ... โอ้เด็กชาย
dan3

ลองคนดู มันใช้ได้กับฉันตลอดเวลา
aveemashfaq
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.