คำสั่งเหล่านี้มีไว้เพื่ออะไร?


10

เมื่อวานฉันต้องติดตั้ง Windows ด้วย Grub override

ดีก็ไม่ใช่ครั้งแรกที่ผมต้องแก้ไขด้วง, ดังนั้นผมจึงใช้ LiveCD ติดตั้งพาร์ทิชันราก (ผมไม่ได้มีการบูตเพียง/และhome) grub-install --root-directory=/mnt/ /dev/sdaและวิ่ง อย่างไรก็ตามมันใช้งานไม่ได้

หลังจาก Googling ในขณะที่ผมพบว่าการกวดวิชาที่แทนเพียงแค่ติดตั้งพาร์ทิชันลินุกซ์นอกจากนี้เขายังได้และmount --bind /mnt/dev /dev mount --bind /mnt/proc /proc/หลังจากนั้นchrootถึง/mntและจากนั้นจึงติดตั้ง Grub และใช้วิธีนี้

สิ่งที่เป็นmount --bindคำสั่งหรือไม่? ฉันคุ้นเคยกับการใช้งาน--bind used(man page) แต่ฉันไม่รู้ว่าทำไมมันจึงถูกใช้กับตัวอย่างนี้

คำตอบ:


10

procและsysระบบไฟล์ถูกจัดเตรียมโดยเคอร์เนลที่กำลังรัน - เมื่อเคอร์เนลไม่ได้ทำงานอยู่พวกมันจะหยุดอยู่ ซึ่งหมายความว่าเมื่อคุณ chroot เป็นระบบปฏิบัติการอื่นระบบไฟล์เหล่านี้จะไม่ปรากฏ หลายโปรแกรมคาดหวังให้มีอยู่เพื่อให้สามารถทำงานได้ตัวอย่างเช่นพวกเขาอาจต้องการข้อมูลเกี่ยวกับระบบที่กำลังทำงานหรือต้องการแก้ไขวิธีที่เคอร์เนลจัดการบางอย่าง มันก็เพียงพอแล้วที่จะให้/procและ/sysจากเคอร์เนลปัจจุบันสำหรับโปรแกรมเหล่านี้ให้ทำงานตามที่คาดไว้

symlink จะไม่พอเพียงเนื่องจาก chrooting จะทำให้พา ธ ของไฟล์ที่ใช้ไม่ถูกต้อง ใน Linux คุณไม่สามารถฮาร์ดลิงก์ไดเรกทอรี (นอกเหนือจาก.และ..ตามที่กำหนดโดยmkdir) ซึ่งหมายความว่าต้องใช้ตัวเลือกที่สามเพื่อทำมิรเรอร์ระบบไฟล์เหล่านี้กับสภาพแวดล้อม chrooted - การเชื่อมต่อแบบผูก เคอร์เนล bind ถูกจัดเตรียมโดยเคอร์เนลโดยตรงและทำงานตามที่คาดไว้ภายใน chroot


procและsysสามารถติดตั้งในหลาย ๆ ที่ได้ดังนั้นจึง--bindไม่จำเป็น (ติดตั้งได้สองครั้งเท่านั้น) อย่างไรก็ตาม/dev/จัดการโดย udev ไม่ใช่เคอร์เนลภายใน
Maciej Piechotka

@MaciejPiechotka ฉันไม่เคยพูดถึง / dev เพราะมันไม่ได้อยู่ในคำถาม แต่นั่นไม่จำเป็นต้องจัดการโดย udev จำเป็น
Chris Down

ฉันหมายถึงมากขึ้นprocและsysเป็นระบบไฟล์ที่สามารถติดตั้งสองครั้ง ( mount -t proc none /mnt/proc) ดังนั้นคุณไม่จำเป็นต้องใช้mount --bindพวกเขา devโดยทั่วไปจะจัดการโดย userspace (ไม่ว่าจะเป็น udev, busybox หรืออย่างอื่น) ดังนั้นคุณต้องทำ ประเด็นย่อยอยู่ดี
Maciej Piechotka

0

--bindตัวเลือกที่จะช่วยให้จุดติดที่จะแสดงขึ้นมาในchrootสภาพแวดล้อมที่ -ed

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