ฉันมีฮาร์ดไดรฟ์แล็ปท็อปในกล่องหุ้มภายนอกซึ่งฉันใช้เป็น pendrive ขนาดใหญ่ สำหรับเรื่องที่เพิ่มขึ้นฉันได้ติดตั้งลินุกซ์ไว้แล้วดังนั้นฉันสามารถบูตเครื่องที่มีตัวเลือกมากมาย (เช่นสำหรับการกู้คืนข้อมูลหรือซ่อมแซมระบบ b0rked หรือเพียงแค่ใช้แล็ปท็อปที่ยืมมาโดยไม่ทำลาย Windows ที่ติดตั้งไว้ล่วงหน้า) ปัญหาคือขึ้นอยู่กับการกำหนดค่าฮาร์ดแวร์ฮาร์ดไดรฟ์ USB อาจมองเห็นได้ภายใต้เส้นทางที่แตกต่างกัน สำหรับการตั้งค่าด้วงฉันใช้(hda0,0)เพราะมันสัมพันธ์กับอุปกรณ์ที่ด้วงเปิดตัว ฉันมีรายการ UUID /etc/fstabใน ฉันยังระบุrootwaitในพารามิเตอร์เคอร์เนลเพื่อรอระบบย่อย USB ที่จะปักหลักก่อนที่จะเมานต์อุปกรณ์
สิ่งที่ฉันควรผ่านไปยังเคอร์เนลเป็นroot=อย่างไร ปัจจุบันทำการบู๊ตจาก pendrive หนึ่งครั้งตรวจสอบข้อความดีบั๊กเพื่อดูว่า/dev/sdXอุปกรณ์ใดได้รับมอบหมายให้เคอร์เนลไดรฟ์ USB จากนั้นรีบู๊ตและแก้ไขการกำหนดค่าด้วง ฉันไม่สามารถเปลี่ยนแปลงอะไรบนพีซีนอกเหนือจากการเปิดใช้งานBoot from USB hard driveBIOS และตั้งค่าเป็นลำดับความสำคัญสูงกว่าฮาร์ดไดรฟ์ภายใน
มีสคริปต์การสร้าง 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 คือปัญหาที่ทำให้ฉัน