rm /*
nên xóa rất ít. Không có -r
cờ trong đó sẽ xóa đệ quy bất cứ thứ gì, và nếu không có nó thì các thư mục sẽ không bị xóa (và ngay cả khi các thư mục đã bị xóa, chỉ những cái trống mới có thể bị xóa). Câu trả lời này được xác định dựa trên giả định rằng bạn không chạy rm -rf /*
.
Các tệp duy nhất trong hệ thống tệp gốc của hệ quả có thể là các liên kết tượng trưng cho kernel và initrd (mặc dù trên một hệ thống Ubuntu tôi đang xem, chúng không tồn tại) hoặc một /lib64
liên kết tượng trưng trên các hệ thống 64 bit.
Vấn đề có thể là /lib64 -> /lib
liên kết tượng trưng đã bị xóa. Mặc dù điều đó khá khó chịu, vì mọi chương trình sẽ dựa vào liên kết tượng trưng đó:
$ ldd /bin/bash
...
/lib64/ld-linux-x86-64.so.2 (0x00007f8946ab7000)
Đó ld-linux
là trình tải động và nếu không có sẵn, bạn không thể chạy bất kỳ tệp thực thi động nào. Điều này sẽ khiến việc đăng nhập trở nên vô cùng khó khăn và bạn hoàn toàn không thể.
Một vị cứu tinh có thể busybox
. Chạy cái này để kiểm tra:
$ ldd /bin/busybox
not a dynamic executable
Trong trường hợp này, busybox nên chạy được, nhưng câu hỏi là làm thế nào bạn có thể chạy nó?
Nếu bạn có quyền truy cập vào bộ nạp khởi động nhanh chóng, bạn có thể khởi động với init=/bin/static-sh
, nơi tĩnh-sh là một liên kết tượng trưng đến busybox
(check mà /bin/static-sh
tồn tại -. Nó hiện trên hệ thống của tôi, nhưng nó không phải là tiêu chuẩn Ubuntu Lỗi này cho thấy là có sẵn .)
Khi bạn có một vỏ gốc, bạn có thể tạo lại /lib64
liên kết tượng trưng. Trước tiên, bạn có thể cần phải kết nối lại hệ thống tập tin gốc dưới dạng đọc / ghi. busybox nên tích hợp sẵn các công cụ này, bạn có thể chạy như sau:
# busybox mount -o remount,rw /
# busybox ln -s /lib /lib64
# /bin/bash
bash#
Nếu bash hoạt động, vấn đề cần được khắc phục.
-r
đối số đếnrm
hoặc thực sự vừa thực hiện lệnh bạn hiển thị. Nhà cung cấp dịch vụ lưu trữ của bạn có cung cấp bất kỳ cách nào để truy cập hình ảnh đĩa bên ngoài máy đó không?