Saat saya menginstal MRTG, secara tidak sengaja saya telah menghapus /usr/lib/*.so.*
dan/usr/lib/*.so
Saya sekarang tidak dapat mem-boot sistem saya sekarang, macet di layar splash dan ketika saya menekan tombol PAGEDOWN saya bisa melihat ada beberapa hal yang gagal dimuat.
Namun, DHCP dan WebMin berjalan dan dari Webmin saya dapat melihat log sistem yang memberi tahu saya bahwa cangkir tidak memuat karena libpipeline.so.1
hilang dan beberapa lainnya.
Komputer saya menjalankan 11.04
/bin
dan/etc
seperti itu di masa laluJawaban:
Karena Anda hanya menghapus
/usr/lib/*
dan tidak/lib/*
, Anda mungkin dapat memulihkan. Saya pikir semua program yang Anda perlukan untuk memulihkan sistem hanya menggunakan pustaka/usr/lib
.Boot ke prompt login teks. Jika boot normal tidak memberi Anda
login:
prompt dalam mode teks, boot dengan hanya layanan minimum. Tekan dan tahan Shiftketika komputer Anda mulai menampilkan pesan Grub; Anda perlu menekan tombol setelah BIOS menginisialisasi keyboard tetapi sebelum Grub dimuat, yang pada beberapa mesin hanya menyisakan sedikit waktu dan mungkin memerlukan beberapa upaya. Pada prompt Grub, tekan Downuntuk menyorot entri boot mode pengguna tunggal dan boot itu.Setelah Anda memiliki baris perintah, jalankan
apt-get --reinstall install PACKAGE1 PACKAGE2 …
untuk menginstal ulang paket yang memiliki file/usr/lib
. Anda dapat menjalankan cuplikan shell ini untuk mendapatkan daftar nama paket yang akan diinstal ulang:Beberapa skrip instalasi paket mungkin memerlukan pustaka dari paket lain untuk hadir, jadi Anda mungkin perlu menjalankan instalasi ulang dalam urutan tertentu. Jika Anda menemukan bahwa skrip instalasi paket mencoba menggunakan program tertentu, Anda dapat mengetahui perpustakaan mana yang dibutuhkan oleh program ini
ldd
. Misalnya, ini menunjukkan bahwa python kehilangan tiga pustaka yang harus Anda instal ulang:dpkg -S /usr/lib/libz.so.1
mengungkapkan bahwa file ini berasalzlib1g
, dan seterusnya.Jika Anda merasa
apt-get
tidak dapat mengunduh paket, unduh terlebih dahulu beberapa paket kunci dari CD langsung.zlib1g
danlibssl0.9.8
dua paket yang sangat Anda butuhkan sejak dini.sumber
Anda dapat menghabiskan seminggu menemukan semua yang hilang atau Anda dapat menghabiskan satu jam hanya melakukan instal ulang dari CD dan kemudian mendapatkan semua paket lama Anda kembali.
Saya sarankan Anda boot ke lingkungan LiveCD terlebih dahulu untuk mendapatkan cadangan hal pertama (salin ke drive USB eksternal, atau partisi lain) dan kemudian mulai lagi.
sumber
/usr/lib
berisi pustaka bersama, sejujurnya, semuanya kecuali perangkat lunak startup-kritis (itulah yang masuk/lib/
dan hal-hal yang tidak Anda instal melalui manajer paket (biasanya/usr/local/lib
).Versi singkat, Anda baru saja menyemprot sistem Anda.
Sekarang, jika Anda masih memiliki
/var/cache/apt/archives
banyak barang, dengan sedikit sihir yang bijaksana Anda mungkin dapat menyelamatkan situasi.Periksa apakah masih berisi arsip untuk paket-paket berikut:
Paket-paket itu berisi pustaka
/usr/lib
yangaptitude
mengharuskan untuk bekerja. Jika Anda dapat menemukan paket-paket di/var/cache/apt/archives
dalamnya Anda dapat menginstalnya kembali secara manualdpkg -i <packagename
, dan setelah semuanya diinstal, aptitude harus dapat dijalankan.Kemudian dengan menjalankan perintah
aptitude reinstall ~i
Anda akan memaksa menginstal ulang setiap paket yang sudah diinstal, yang semoga mengembalikan sistem Anda. Saya tidak dapat memberikan jaminan mutlak karena kerusakan yang Anda lakukan benar-benar sangat spektakuler dalam hal ini ...sumber
Saya akan tergoda untuk boot dari live-CD Ubuntu 11.04 dan mencoba untuk menyalin file yang hilang kembali.
Sebelum melakukan apa pun, periksa apakah Anda memiliki cadangan yang baik untuk file data yang dibuat pengguna. Jika tidak, saya akan mem-boot live-CD mount HDD read-only dan membuat backup ASAP.
sumber
Ketika saya melakukan sesuatu yang serupa, saya cukup beruntung untuk menyadari sebelum mencoba reboot. Pada titik ini, sebagian besar sistem Anda masih berfungsi. Pendekatan saya adalah membuat kotak virtual dengan versi OS yang sama dan menyalin file yang hilang dari itu. jika Anda mengizinkan akses ssh ke tamu virtualbox Anda, Anda dapat menggunakan rsync dari terminal di sistem utama Anda untuk menyedot hanya file dan tautan yang hilang. Dalam kasus saya ada beberapa file yang hilang sehingga paling mudah / paling aman untuk menyalin secara manual menggunakan scp, jadi yang berikut ini belum teruji (!)
-a adalah mode arsip (rekursif, menyalin symlink, dan atribut termasuk cap waktu, izin dll)
-u melompat jika salinan tujuan lebih baru
-v adalah verbose
sumber