Saya secara tidak sengaja dieksekusi rm /*
ketika login sebagai root di Server Ubuntu yang jauh dan menghapus hampir semua binari dan saat ini saya tidak dapat login melalui ssh atau ftp untuk mengembalikan file (dan berharap yang terbaik).
Apakah ada cara untuk memperbaiki kekacauan ini, atau haruskah saya menelepon pusat data dan meminta format?
rm
data-recovery
Semut
sumber
sumber
-r
argumenrm
atau benar-benar hanya melakukan perintah yang Anda tunjukkan. Apakah penyedia hosting Anda menyediakan cara apa pun untuk mengakses gambar disk di luar mesin tertentu?Jawaban:
rm /*
harus menghapus sangat sedikit. Tidak ada-r
bendera di sana yang akan menghapus apa pun secara rekursif, dan tanpa itu direktori tidak akan dihapus (dan bahkan jika direktori dihapus, hanya yang kosong yang dapat dihapus). Jawaban ini didasarkan pada asumsi bahwa Anda tidak menjalankanrm -rf /*
.Satu-satunya file di root filesystem konsekuensi mungkin adalah symlink ke kernel dan initrd (walaupun pada satu sistem Ubuntu yang saya lihat, mereka tidak ada) atau
/lib64
symlink pada sistem 64-bit.Masalahnya mungkin saja bahwa
/lib64 -> /lib
symlink telah dihapus. Itu cukup jahat, karena hampir setiap program akan bergantung pada symlink itu:Itu
ld-linux
adalah pemuat dinamis, dan jika tidak tersedia, Anda tidak dapat menjalankan executable dinamis apa pun. Ini akan membuatnya sangat sulit untuk masuk, dan Anda mungkin tidak bisa sama sekali.Satu penyelamat mungkin
busybox
. Jalankan ini untuk memeriksa:Dalam hal ini, busybox seharusnya bisa dijalankan, tetapi pertanyaannya adalah bagaimana Anda bisa menjalankannya?
Jika Anda memiliki akses ke prompt boot loader, Anda mungkin dapat boot dengan
init=/bin/static-sh
, di mana static-sh adalah symlink kebusybox
(periksa yang/bin/static-sh
ada - itu ada di sistem saya, tapi itu bukan standar Ubuntu. Bug ini menunjukkan bahwa tersedia .)Setelah Anda memiliki shell root, Anda dapat membuat kembali
/lib64
symlink. Anda mungkin perlu me-remount sistem file root sebagai baca / tulis. busybox harus memiliki alat ini bawaan, yang dapat Anda jalankan sebagai berikut:Jika bash berhasil, masalahnya harus diperbaiki.
sumber
Jika Anda perlu memulihkan file dari instalasi saat ini, minta host Anda untuk membantu Anda. Dengan asumsi itu adalah VM, dibutuhkan sekitar lima menit dari hari mereka untuk gambar disk Anda, instal ulang host Anda dari awal dan buang gambar disk lama di sistem file baru Anda.
Jika Anda tidak memerlukan apa-apa, minta mereka untuk menginstal ulang. Hampir selalu pilihan yang lebih cepat ketika Anda memikirkan hal-hal yang sulit.
sumber
Jika Anda baru saja menghapus symlink / lib64 ke / lib dan Anda masih memiliki konsol terbuka, lakukan saja:
dan Anda harus dapat menjalankan perintah secara normal lagi. Sesuaikan jalur ke pustaka ld Anda yang sebenarnya. Anda juga dapat menjalankan perintah lain yang Anda inginkan dengan hanya memulainya dengan jalur pustaka ld lengkap.
sumber
Tanpa memiliki akses ke server fisik tidak banyak yang dapat Anda lakukan.
sumber