ฉันไม่ทราบวิธีการเข้าถึงระบบไฟล์รูท initramfs หลังจากติดตั้งระบบไฟล์รูทจริงแล้ว มีไฟล์เฉพาะที่สร้างขึ้นใน initramfs ที่คุณกำลังพยายามเข้าถึงหรือไม่ จากที่คุณกล่าวถึง แคสเปอร์ ฉันถือว่าคุณกำลังบูทอิมเมจ live-cd
หากคุณมีสิทธิ์เข้าถึงคอนโซล คุณสามารถหยุดกระบวนการบู๊ตชั่วคราวก่อนที่จะเมาต์ระบบไฟล์รูทจริง ตัวอย่างเช่น การเพิ่มอาร์กิวเมนต์เคอร์เนล แตก=ล่าง
จะหยุดกระบวนการบู๊ตชั่วคราวก่อนที่จะติดตั้งระบบไฟล์รูทจริงและเปิดเชลล์ช่วยเหลือในสภาพแวดล้อม initramfs
หากมีไฟล์เฉพาะที่คุณสนใจ เนื้อหา (โดยค่าเริ่มต้น) ของ /run/initramfs
จะยังคงอยู่ระหว่างสภาพแวดล้อม initramfs และสภาพแวดล้อมที่บูต มีการเขียนไฟล์บันทึกบางอย่างไว้ที่นั่น คุณอาจเพิ่ม hook เพื่อคัดลอกไฟล์ที่นั่น (แก้ไข ฉันคิดว่าทั้งหมด /วิ่ง
ระบบไฟล์ถูกเก็บไว้รอบ ๆ )
แก้ไข - ฉันพบบทความสองสามบทความโดย Rob Landley ที่เพิ่มสีสันให้กับกระบวนการ พวกเขาทั้งหมดแนะนำว่าเนื้อหาของรูท initramfs จะถูกทำลาย / ลบ
สิ่งที่ switch_root ทำคือลบไฟล์ทั้งหมดออกจาก rootfs (เพื่อเพิ่มหน่วยความจำ) จากนั้น chroot เข้าสู่ระบบไฟล์ใหม่และเรียกใช้กระบวนการเริ่มต้นใหม่จากระบบไฟล์ใหม่
initramfs เป็น rootfs: คุณไม่สามารถ pivot_root ได้
rootfs หรือยกเลิกการต่อเชื่อม ลบทุกอย่างออกจาก rootfs แทน
เพิ่มพื้นที่ว่าง (find -xdev / -exec rm '{}' ';'), overmount rootfs
ด้วยรูทใหม่ (cd /newmount; mount --move . /; chroot .) แนบ
stdin/stdout/stderr ไปยัง /dev/console ใหม่ และเรียกใช้ init ใหม่
เนื่องจาก initramfs เป็นไฟล์
ramfs การลบเนื้อหาจะเพิ่มหน่วยความจำที่ใช้
ลิงค์