ฉันมีฮาร์ดไดรฟ์แล็ปท็อปในกล่องหุ้มภายนอกซึ่งฉันใช้เป็น pendrive ขนาดใหญ่ สำหรับเรื่องที่เพิ่มขึ้นฉันได้ติดตั้งลินุกซ์ไว้แล้วดังนั้นฉันสามารถบูตเครื่องที่มีตัวเลือกมากมาย (เช่นสำหรับการกู้คืนข้อมูลหรือซ่อมแซมระบบ b0rked หรือเพียงแค่ใช้แล็ปท็อปที่ยืมมาโดยไม่ทำลาย Windows ที่ติดตั้งไว้ล่วงหน้า) ปัญหาคือขึ้นอยู่กับการกำหนดค่าฮาร์ดแวร์ฮาร์ดไดรฟ์ USB อาจมองเห็นได้ภายใต้เส้นทางที่แตกต่างกัน สำหรับการตั้งค่าด้วงฉันใช้(hda0,0)
เพราะมันสัมพันธ์กับอุปกรณ์ที่ด้วงเปิดตัว ฉันมีรายการ UUID /etc/fstab
ใน ฉันยังระบุrootwait
ในพารามิเตอร์เคอร์เนลเพื่อรอระบบย่อย USB ที่จะปักหลักก่อนที่จะเมานต์อุปกรณ์
สิ่งที่ฉันควรผ่านไปยังเคอร์เนลเป็นroot=
อย่างไร ปัจจุบันทำการบู๊ตจาก pendrive หนึ่งครั้งตรวจสอบข้อความดีบั๊กเพื่อดูว่า/dev/sdX
อุปกรณ์ใดได้รับมอบหมายให้เคอร์เนลไดรฟ์ USB จากนั้นรีบู๊ตและแก้ไขการกำหนดค่าด้วง ฉันไม่สามารถเปลี่ยนแปลงอะไรบนพีซีนอกเหนือจากการเปิดใช้งานBoot from USB hard drive
BIOS และตั้งค่าเป็นลำดับความสำคัญสูงกว่าฮาร์ดไดรฟ์ภายใน
มีสคริปต์การสร้าง initrd ต่างๆซึ่งรวมถึงการสนับสนุน UUID ในเส้นทางอุปกรณ์รูท แต่น่าเสียดายที่ Gentoo native one (genkernel) ไม่รองรับrootwait
และฉันโชคไม่ดีที่จะลองใช้งานอื่น
กระบวนการบู๊ตเป็นไปตามนี้ ( มันค่อนข้างคล้ายกันใน Windows ):
- BIOS เลือกอุปกรณ์สำหรับบู๊ตและโหลดสิ่งที่เป็น MBR (ซึ่งเกิดขึ้นกับด้วงสเตจ -1)
- ด้วงจะทำการตั้งค่าและไฟล์สเตจ -2 จากอุปกรณ์ที่ตั้งไว้
root
โดยใช้(hd0)
สำหรับอุปกรณ์ที่โหลดจาก BIOS - ด้วงโหลดและเริ่มเคอร์เนล (ยังคงเป็นเลขเดิมดังนั้นฉันสามารถใช้
(hd0,0)
อีกครั้ง) - เคอร์เนลเริ่มต้นอุปกรณ์ในตัวทั้งหมด (
rootwait
ทำตอนนี้วิเศษ) - เคอร์เนลเมาต์พาร์ติชันที่ส่งผ่านเป็น
root
(นี่คือพารามิเตอร์เคอร์เนลไม่ใช่พารามิเตอร์ด้วง) init.d
เริ่มต้นขั้นตอนการบูต userland/etc/fstab
รวมทั้งสิ่งที่ติดตั้งจาก
ส่วนที่ 5 คือปัญหาที่ทำให้ฉัน