Tôi không biết bất kỳ cách nào để truy cập hệ thống tệp gốc initramfs sau khi hệ thống tệp gốc thực sự đã được gắn kết. Có tệp cụ thể nào được tạo trong initramfs mà bạn đang cố truy cập không? Kể từ khi bạn đề cập casper Tôi cho rằng bạn đang khởi động một hình ảnh đĩa cd trực tiếp.
Nếu bạn có quyền truy cập vào bảng điều khiển thì bạn có thể tạm dừng quá trình khởi động trước khi hệ thống tệp gốc thực sự được gắn kết. Ví dụ: thêm đối số kernel phá vỡ = dưới cùng
sẽ tạm dừng quá trình khởi động trước khi hệ thống tệp gốc thực sự được gắn kết và mở trình bao cứu hộ trong môi trường initramfs.
Nếu có các tệp cụ thể mà bạn quan tâm, (theo mặc định) nội dung của /run/initramfs
sẽ tồn tại giữa môi trường initramfs và môi trường đã khởi động. Một số tệp nhật ký được ghi ở đó. Bạn có thể thêm móc để sao chép tệp ở đó. (chỉnh sửa tôi nghĩ toàn bộ /chạy
hệ thống tập tin được giữ xung quanh)
chỉnh sửa - Tôi đã tìm thấy một vài bài báo của Rob Landley bổ sung thêm một số màu sắc cho quy trình. Tất cả đều đề xuất nội dung của thư mục gốc initramfs bị hủy/xóa.
Những gì switch_root làm là xóa tất cả các tệp ra khỏi rootfs (để giải phóng bộ nhớ), sau đó chroot vào một hệ thống tệp mới và thực thi một quy trình init mới ra khỏi hệ thống tệp mới.
initramfs là rootfs: bạn không thể pivot_root
rootfs, cũng không ngắt kết nối nó. Thay vào đó xóa mọi thứ ra khỏi rootfs để
giải phóng dung lượng (tìm -xdev / -exec rm '{}' ';'), vượt qua rootfs
với thư mục gốc mới (cd /newmount; mount --move . /; chroot .), đính kèm
stdin/stdout/stderr sang /dev/console mới và thực thi init mới
Vì initramfs là một
ramfs, việc xóa nội dung của nó sẽ giải phóng bộ nhớ mà nó sử dụng.
liên kết