Mount hệ thống tập tin gốc từ initramfs


15

Đó là một kịch bản phổ biến. Vì bất kỳ lý do gì, initramfs (OpenSUSE, trong trường hợp có vấn đề) đã không tìm thấy hệ thống tập tin gốc, vì vậy nó thả bạn vào một vỏ cứu hộ. Tôi biết hoàn toàn rõ những gì thiết bị cần phải được gắn mặc dù. Câu hỏi của tôi:

Quy trình đúng để gắn hệ thống tập tin gốc và tiếp tục trình tự khởi động là gì?

Có lẽ đó là toàn bộ quan điểm của bảng điều khiển cứu hộ. Tuy nhiên, dường như không ai đã ghi lại cách bạn thực sự làm điều này.

Rõ ràng tôi có thể gắn hệ thống tập tin gốc ở đâu đó. Nhưng làm thế nào để tôi tạo ra gốc của cây hệ thống tập tin? Và bây giờ tôi có tiếp tục quá trình khởi động bình thường sau đó không? (Tôi nghĩ chỉ cần thoát khỏi vỏ sẽ làm điều đó ... nhưng không.) Chính xác thì bạn cần gì để được gắn kết trước khi tiếp tục, và bạn tiếp tục như thế nào?


2
Tôi có thể sai, nhưng tôi nghĩ rằng một khi bạn ở trong vỏ cứu hộ, bạn không thể tiếp tục khởi động hiện tại, bạn sửa chữa mọi thứ để lần khởi động tiếp theo sẽ thành công
Eric Renouf

@EricRenouf tự khởi động toàn bộ hệ thống rất có thể là cách dễ nhất để khắc phục sự cố như vậy. Tôi đã gặp vấn đề trong quá khứ khi các initramfs không thể mở phân vùng gốc được mã hóa cryptsetup-luks của tôi và cách khắc phục dễ nhất là tự khởi động nó và sau đó chạy update-initramfs -u. Tôi hoàn toàn không thể làm cho nó hoạt động khi tôi vừa sửa chroothệ thống tập tin gốc từ hệ thống cứu hộ; các initramfs kết quả luôn luôn bị phá vỡ.
Martin von Wittich

Nó thực sự là một initrd, hay initramfs? (Chỉ vì tệp được gọi initrdkhông có nghĩa là tệp đó: hầu hết các bản phân phối đã chuyển sang initramfsnhưng vẫn tiếp tục gọi tệp initrd.) Bạn đang sử dụng phân phối nào (như những gì initrd / initramfs phụ thuộc vào phân phối được đặt ở đó)?
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles Tôi khá chắc chắn rằng nó thực sự là initramfs. Không chắc chắn nếu nó thực sự làm cho một sự khác biệt mặc dù; dù bằng cách nào, tôi đã có một hệ thống tập tin nhỏ và tôi cần gắn hệ thống tập tin thực sự. (OpenSUSE, trong trường hợp có vấn đề.)
Toán

Câu trả lời:


3

thủ tục bình thường là

  1. gắn kết / dev / sdX / mnt
  2. khắc phục sự cố trên / mnt
  3. khởi động lại

Bạn có thể muốn

  1. gắn kết / dev / sdX / mnt
  2. sửa chữa / mnt
  3. umount / mnt
  4. gắn kết / dev / sdX /
  5. hoàn thành hướng dẫn khởi động

Điều này không được khuyến khích, bạn sẽ phải làm điều đó trên mỗi lần khởi động. Trong môi trường sản xuất, bạn không thể chắc chắn khởi động thủ công theo các bước tương tự như tự động.

Tuy nhiên, trong trường hợp khẩn cấp với dữ liệu quan trọng, bước 5 thông thường sẽ chuyển sang:

  • 5.1 thiết lập mạng
  • 5.2 sao chép tập tin quan trọng vào nơi an toàn

1
Tôi tin rằng câu hỏi "thực tế" của poster ban đầu là "Làm thế nào chính xác bạn làm '5. hoàn thành hướng dẫn khởi động'?"
dùng2121874


2

Đơn giản chỉ cần chạy fscklệnh mà không có tùy chọn từ initramfsđó khởi động lại

ví dụ: phân vùng gốc là sda3

fsck /dev/sda3

Việc khởi động lại chỉ khiến tôi rơi vào shell grub thay vì shell initramfs. Bây giờ tôi sẽ làm lại mọi thứ để có được vỏ initramfs
jaam

1

Nếu root=tham số này là chính xác và vấn đề chỉ là thiết bị cần thiết không có sẵn (ví dụ vì các initramfs không thể lắp ráp mdRAID), thì nó đủ để cung cấp thiết bị theo cách thủ công, ví dụ:

mdadm --assemble ...

Sau đó kiểm tra xem thiết bị có ở đó không và nếu mọi thứ đều ổn, hãy nhấn ctrl+ dhoặc gõ exitđể thoát khỏi vỏ initramfs. Các initramfs sau đó sẽ gắn hệ thống tập tin gốc và tiếp tục khởi động như bình thường. Sau khi hệ thống đã khởi động, bạn nên sửa chữa vấn đề cơ bản, ví dụ bằng cách chạy update-initramfs -u.

Tôi chưa tìm được cách nào để bảo các initramfs khởi động một thiết bị khác với những gì đã /proc/cmdlinenói. Có lẽ ai đó có một ý tưởng?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.