Bagaimana cara mengembalikan sistem setelah secara tidak sengaja menghapus semua kernel?
69
Saya mencoba menghapus kernel lama, tetapi saya harus menghapus semua kernel di laptop Ubuntu 11.04 saya. Apakah ada cara untuk memperbaikinya melalui boot USB atau memasang hard drive di sistem lain?
Itu yang akan saya sarankan. Saya tidak bisa melihat mengapa itu tidak berhasil.
Oli
Ok, terima kasih sudah mengkonfirmasi. Saya telah menambahkan langkah-langkah finalisasi juga, unmount /mnt. Ubuntu biasanya menangani unmount / menyinkronkan sistem file, tetapi ini terlihat lebih bersih bagi saya.
Lekensteyn
1
@ MaheshKatta Anda harus memasang RAID terlebih dahulu. Jadi alih-alih langkah dua (di mana Anda memasang satu drive) Anda akan memetakan /dev/mdxxxdrive - dengan asumsi itu mdadm.
Oli
4
@James Edit /etc/resolv.conf(hapus jika itu adalah symlink) dan masukkan sesuatu seperti nameserver 8.8.8.8itu (server DNS publik Google). Ganti jika perlu.
Lekensteyn
3
Nvm. Sepertinya saya harus mengedit file dalam chroot itu sendiri. Mungkin Anda harus menambahkan jawabannya cp /etc/resolv.conf /mnt/etc/resolv.confsebelum masuk ke chroot. Itu berhasil bagi saya
Peter Raeves
56
Prosedur yang diperluas ini mencakup sebagian besar komplikasi yang dapat terjadi, termasuk masalah koneksi ke Internet di chroot, tidak mengetahui paket kernel mana yang harus diinstal (sebelum Ubuntu 12.10, tidak akan selalu demikian linux-image-generic), tidak mengetahui pada awalnya partisi mana atau bahkan drive fisik mana yang berisi sistem /file, dan memiliki /bootpartisi yang terpisah .
Saya belum menulis ini dengan mengacu pada salah satu prosedur lain di sini, meskipun Anda akan melihat beberapa kesamaan. Saya mendasarkannya, secara longgar, pada prosedur di sini (meskipun instruksi itu untuk sesuatu yang sangat berbeda, saya telah mengadaptasinya secara luas, dan hanya beberapa perintah, bukan prosa, yang disalin).
Anda menghapus semua paket kernel, dan Ubuntu tidak dapat boot tanpa kernel diinstal. Jadi solusinya adalah boot dari live CD / DVD / USB, chrootke sistem yang diinstal, dan instal kernel di dalamnya.
Boot dari live CD / DVD Ubuntu atau USB flash drive langsung.
Pilih Coba Ubuntu (bukan Instal Ubuntu ).
Saat desktop muncul, pastikan Anda terhubung ke Internet. Jika tidak, sambungkan ke Internet. Salah satu cara untuk melihat apakah Anda terhubung ke Internet adalah dengan membuka browser web. Anda bahkan dapat mengikuti petunjuk lainnya dengan membawa jawaban Tanya Ubuntu ini di browser web Anda, dalam sistem live CD / DVD / USB. Saya sangat merekomendasikan melakukan itu.
Buka jendela Terminal dengan Ctrl+ Alt+ T.
Di jendela Terminal, jalankan perintah ini untuk mendaftar partisi Anda:
sudo parted -l
Anda akan melihat sesuatu seperti ini (tetapi tidak akan persis seperti ini):
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 20.4GB 20.4GB primary ext4 boot
2 20.4GB 21.5GB 1072MB extended
5 20.4GB 21.5GB 1072MB logical linux-swap(v1)
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0
has been opened read-only.
Error: Can't have a partition outside the disk!
Periksa output yang Anda dapatkan, untuk menentukan nama perangkat dari partisi yang berisi sistem /file dari sistem Ubuntu yang diinstal pada hard drive (yang sedang Anda perbaiki).
Jika Anda hanya memiliki satu ext4partisi, itu saja.
Jika Anda memiliki lebih dari satu ext4partisi, itu mungkin yang pertama. Namun, jika yang pertama sangat kecil - kurang dari satu gigabyte - maka itu mungkin merupakan /bootpartisi yang terpisah (ingat itu juga).
Harap dicatat bahwa ada atau tidaknya bootdaftar di bawah Flagsini tidak ada hubungannya dengan apakah suatu partisi adalah partisi yang terpisah atau tidak /boot. Sistem saya, yang informasinya tercantum di atas, tidak memiliki /bootpartisi terpisah .
Nama perangkat untuk partisi dimulai dengan nama perangkat untuk drive fisik, dinyatakan segera setelah Diskdi baris kedua. Kemudian cukup tambahkan nomor partisi di akhir itu. Jadi, nama perangkat untuk partisi yang berisi sistem file saya/ adalah /dev/sda1. Berikut adalah dua baris di mana saya menemukan informasi itu:
Disk /dev/sda: 21.5GB
1 1049kB 20.4GB 20.4GB primary ext4 boot
Jika Anda memiliki lebih dari satu drive fisik, Anda akan mendapatkan lebih dari satu daftar seperti apa yang ditunjukkan di atas. Tetapi kecuali jika Anda memiliki sistem lain yang mirip Unix yang diinstal, Anda mungkin hanya akan memiliki satu drive yang berisi ext4partisi, setidaknya tanpa membuatnya secara sengaja di drive lain. Jika Anda memiliki banyak drive dengan ext4partisi, maka ext4partisi yang berisi /sistem file Anda mungkin ada di drive yang juga berisi linux-swappartisi.
Ini mungkin bahwa sistem Ubuntu Anda /filesystem pada partisi tipe lain dari ext4. Ketika ini terjadi, hampir selalu ext3, dan hampir selalu pada sistem yang cukup lama. Sangat jarang hal ini terjadi, kecuali jika Anda sendiri yang mengaturnya sendiri.
Ingat nama perangkat partisi yang berisi /sistem file Anda (atau tuliskan). Jika berbeda dengan /dev/sda1, maka Anda akan menggantinya /dev/sda1dengan langkah-langkah di bawah ini.
(Jika sepertinya Anda memiliki /bootpartisi yang terpisah , ingat nama perangkat untuk itu juga.)
Pasang /filesystem ke /mnt, dan pasang /devfilesystemnya:
sudo mount /dev/sda1 /mnt
sudo mount --bind /dev /mnt/dev
Periksa apakah sistem Ubuntu yang rusak yang Anda perbaiki memiliki /bootpartisi terpisah yang harus dipasang secara terpisah. (Jika Anda yakin tidak, Anda dapat melewati ini.)
Untuk memeriksa, jalankan:
ls /mnt/boot
Jika ada output (seperti grub memtest86+.bin memtest86+_multiboot.bin, tetapi tidak harus persis seperti itu), maka sistem yang rusak /bootada di partisi yang sama /dan Anda tidak perlu me-mount apa pun untuk mengaksesnya.
Tetapi jika tidak ada output, maka Anda harus me-mount sistem /bootfile:
sudo mount BOOT-PARTITION /mnt/boot
Ganti BOOT-PARTITIONdengan nama perangkat /bootpartisi (lihat langkah 6 di atas).
chroot ke dalam sistem yang rusak, pasang sistem file virtual penting yang tersisa, dan tetapkan beberapa variabel lingkungan penting:
sudo chroot /mnt
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root
export LC_ALL=C
Tentukan apakah akses Internet berfungsi dari dalam dengan chrootmenggunakan pingbeberapa host andal yang dikenal merespons secara normal terhadap ping:
ping -c 5 www.google.com
Anda harus melihat sesuatu seperti ini:
PING www.l.google.com (74.125.131.147) 56(84) bytes of data.
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=1 ttl=44 time=61.3 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=2 ttl=44 time=62.3 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=3 ttl=44 time=61.8 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=4 ttl=44 time=63.8 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=5 ttl=44 time=66.6 ms
--- www.l.google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 61.367/63.212/66.608/1.897 ms
Jika sebagian besar terlihat seperti itu, dan angka sebelumnya % packet losskurang dari 100, maka koneksi internet di dalamnya chrootberfungsi:
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
Ini berfungsi, sehingga Anda dapat melewati langkah 11 .
Jika sebagian besar terlihat seperti itu, dan nomor sebelumnya % packet lossadalah 100, koneksi perlu pemecahan masalah. Pastikan koneksi pada sistem live CD (misalnya, melalui browser web, atau dengan menjalankan perintah yang sama di chroottab / jendela Terminal yang terpisah ) tidak berfungsi. Pastikan Anda mengetik perintah dengan benar. Gunakan www.google.comjika Anda belum.
Jika output tidak terlihat seperti di atas sama sekali, tetapi sebaliknya mengatakan ping: unknown host www.google.com, maka jaringan belum berfungsi di chroot.
Siapkan jaringan di Internet chroot. Lewati langkah ini kecuali Anda mendapat unknown hostkesalahan di langkah 10 di atas.
Untuk menyiapkan jaringan, cadangan sistem yang rusak ini hostsfile, dan menyalin CD sistem hidup ini hostsdan resolv.conffile. (Anda tidak perlu mencadangkan versi sistem yang rusak resolv.conf, karena file itu secara otomatis dibuat ulang saat itu juga.)
Buka tab Terminal baru ( Ctrl+ Shift+ T) atau, jika Anda suka, jendela Terminal baru ( Ctrl+ Shift+ N, atau hanya Ctrl+ Alt+ T). Jalankan perintah ini di dalamnya:
( exitPerintah di akhir menutup tab / jendela baru.)
Ulangi langkah 10 di atas untuk memastikan akses Internet berfungsi sekarang dari dalam chroot. Itu harus.
Cari tahu paket kernel mana yang harus diinstal. Biasanya, ini akan terjadi linux-image-generic. Tapi tidak selalu.
Jika Anda tidak yakin akan menginstal yang mana, sebagian tergantung pada rilis Ubuntu mana yang telah Anda instal, dan sebagian pada informasi lainnya. Jika Anda tidak yakin rilis Ubuntu mana yang telah Anda instal, cari tahu dengan menjalankan perintah ini (di chroot, bukan di jendela / tab Terminal terpisah):
lsb_release -r
Di Ubuntu 12.10 (rilis Ubuntu berikutnya, saat ini dalam pengembangan), akan selalu seperti itu linux-image-generic. (Lihat ini , ini , dan ini .)
Di Ubuntu 12,04 LTS, kemungkinan yang ada adalah linux-image-genericdan linux-image-generic-pae. (Tidak seperti versi sebelumnya, 12.04 tidak lagi memiliki kernel server dan desktop terpisah.)
Jika sistem Ubuntu yang diinstal (yang Anda perbaiki) adalah versi 64-bit, gunakan linux-image-generic. ( linux-image-generic-paehanya berlaku untuk sistem 32-bit.)
Dimungkinkan untuk memiliki sistem Ubuntu 32-bit yang diinstal pada komputer 32-bit atau 64-bit. Selain itu, Anda mungkin menggunakan CD live 32-bit atau 64-bit untuk memperbaiki sistem yang diinstal 32-bit. Jadi, jika Anda tidak tahu apakah sistem Ubuntu yang diinstal adalah 32-bit atau 64-bit, periksa dengan menjalankan perintah ini (di chroot, bukan di jendela / tab Terminal terpisah):
dpkg-architecture -qDEB_HOST_ARCH_BITS
Output akan berupa 32atau 64.
(Harap dicatat bahwa uname -mini bukan cara yang benar untuk menemukan informasi ini, karena bahkan ketika berjalan dalam chroot, yang akan memberitahu Anda arsitektur kernel yang berjalan , yang merupakan kernel CD sistem hidup dan tidak terpasang (rusak) sistem kernel.)
Jika sistem Ubuntu yang terinstal (yang Anda perbaiki) adalah versi 32-bit, kernel terbaik untuk digunakan akan tergantung pada berapa banyak RAM yang Anda miliki. Saya merekomendasi:
linux-image-generic jika Anda memiliki kurang dari 3 GB RAM
linux-image-generic-pae jika Anda memiliki 3 GB RAM atau lebih.
(Beginilah installer Ubuntu memilih yang mana yang akan disiapkan, sejak installer memperoleh kemampuan untuk menginstal kernel PAE. Lihat resolusi untuk bug ini . Jika Anda ingin mengetahui apa itu PAE, lihat artikel Wikipedia ini . Jika Anda ingin pelajari tentang PAE di Ubuntu, lihat halaman wiki Ubuntu ini .)
Jika Anda tidak tahu berapa banyak RAM yang Anda miliki, jalankan perintah ini untuk mencari tahu:
grep MemTotal /proc/meminfo
Itu tercantum dalam kilobyte . Untuk mengonversi ke gigabyte , bagilah dengan 1.048.576 (1024 2 ).
3 gigs = 3.145.728 kB
Pada rilis Ubuntu sebelumnya 12,04, kemungkinan besar kemungkinan linux-image-generic, linux-image-generic-pae, dan linux-image-server.
Jika Anda menjalankan sistem Server Ubuntu, gunakan linux-image-server.
Jika tidak, ikuti saran di atas untuk sistem 12,04.
Inilah saat yang telah Anda tunggu-tunggu! Instal kernel di sistem yang rusak.
(Seperti sebelumnya, kecuali jika dinyatakan sebaliknya, perintah ini dijalankan di chroot, bukan di jendela / tab Terminal terpisah.)
Ganti linux-image-genericdengan paket kernel apa pun yang Anda putuskan untuk diinstal pada langkah 12 di atas, jika berbeda.
Jika Anda harus melakukan langkah 11 untuk mengatur jaringan di chroot, kembalikan hostsfile yang lama . Jika Anda melewatkan langkah 11, lewati langkah ini juga.
Matikan live CD / DVD / sistem USB, lepaskan live CD / DVD atau USB flash drive. Boot ke sistem yang diinstal pada hard drive, yang baru saja Anda perbaiki. Anda telah menginstal paket kernel di dalamnya (dan sebagai bagian dari instalasi, kernel yang disediakannya akan ditambahkan kembali ke menu boot GRUB2). Jika semuanya berfungsi dengan benar, sistem Anda harus boot tanpa masalah. (Saya pikir ini mungkin membutuhkan waktu lebih lama untuk boot dari biasanya, kali ini.)
PENOLAKAN: Saya tidak menguji prosedur di atas pada setiap sistem Ubuntu yang memungkinkan , jadi ada kemungkinan ada kesalahan di dalamnya yang belum saya identifikasi.
Di masa depan, saya sarankan selalu mencoba untuk tetap menginstal dua kernel. Ada baiknya memiliki dua jika salah satu dari mereka berhenti bekerja karena alasan apa pun (Anda dapat memilih yang lain di menu boot GRUB2). Selain itu, jika Anda bermaksud menyimpan dua kernel dan Anda secara tidak sengaja menghapus satu kernel lebih dari yang seharusnya dan reboot, Anda masih memiliki satu yang tersisa untuk boot.
Ini mungkin penjelasan tertulis terbaik tentang bagaimana melakukan sesuatu yang kompleks di Linux yang pernah saya baca. Terima kasih
ZincX
Wow, ini sangat membantu! Terima kasih banyak
Rafał Cieślak
2
Terima kasih banyak, Eliah - setelah dengan bodohnya menghapus semua gambar linux saya, Anda menyimpan bacon saya. Satu-satunya masalah yang saya alami adalah pada langkah: sudo cp /etc/resolv.conf /mnt/etc/resolv.conf Saya mendapat "cp: tidak menulis melalui kesalahan symlink` /mnt/etc/resolv.conf 'yang bermasalah. Saya menemukan utas ini dan mengikuti instruksi oleh satu poster ke: "rm /mnt/etc/resolv.conf" sebelum "cp /etc/resolv.conf /mnt/etc/resolv.conf" untuk menyelesaikan masalah symlink yang menjuntai.
@ xcal400 /etc/resolv.confsaat ini dikelola oleh resolvconf, itu akan secara otomatis dihasilkan ketika menggunakan NetworkManager dan dapat dengan aman dihapus menggunakan rm /etc/resolv.confseperti yang Anda ketahui .
Lekensteyn
3
Yang ini harus menjadi jawaban yang diterima. Terima kasih!
Jean-Michel Garcia
0
Ketika saya menghapus kernel saya, saya menemukan solusi ini di Forum Ubuntu. Saya mengikuti setiap langkah dan sistem dipulihkan. Semoga ini bisa membantu Anda.
Chroot mungkin berfungsi, chroot berarti bahwa ketika Anda memulai sistem, Anda mengubah sistem file root. Misalnya Anda mulai dari CD langsung tetapi Anda mengubah root "/" ke tempat ubuntu Anda diinstal.
Katakanlah ubuntu Anda terinstal di / dev / sda2 maka Anda dapat mencoba perintah berikut:
sekarang Anda root "/" di / dev / sda2, coba instal kernel
apt-get update
apt-get install linux-image-2.6.32-26-generic
update-initramfs -cv -k all
update-grub
Saya harus melakukan sedikit tebakan di sini karena saya tidak pernah melakukan ini sebelumnya tetapi ini harus tentang hal itu. Tidak tahu apakah Anda mendapatkan peringatan kesalahan fstab (seperti tidak dapat menemukan root).
Sekarang Anda perlu membersihkan beberapa hal dan melepas partisi yang terpasang: Kode:
Mengapa Anda mengganti /etc/hostsdan menghapus /sbin/initctl? Itu ada di sana karena suatu alasan.
Lekensteyn
Ini tampaknya pada akhirnya didasarkan pada LiveCDCustomization ; beberapa langkah tidak diperlukan untuk memperbaiki sistem yang sudah diinstal. Secara khusus, tidak perlu melakukan apa-apa dengan /sbin/initctlatau dbus-uuidgenatau dpkg-divert. Anda mungkin perlu mengganti /etc/hostsuntuk terhubung ke Internet, tetapi tidak biasanya, dan jika Anda melakukannya, Anda harus mengembalikan yang asli. Pada sistem yang diinstal (daripada CD langsung yang melakukan booting lalu membongkar sistem file squashfs), Anda tidak harus menjalankan update-initramfsatau bahkan update-grubsetelah menginstal kernel.
Eliah Kagan
Juga, karena prosedur ini tidak menginstal metapackage kernel, kernel mungkin tidak diperbarui dengan benar nanti, kecuali metapackage diinstal. Selain itu, linux-image-2.6.32-26-generictidak akan menjadi kernel yang tepat bagi kebanyakan orang untuk menginstal.
Eliah Kagan
0
Setelah saya menghapus kernel lama dari Trusty14.04 kemarin (FTR: Saya tidak menghapus dua yang terbaru!) Sistem saya tidak bisa boot lagi. GRUB menunjukkan
Error: File not found
Error: You need to load the kernel first
Tidak tahu kenapa.
Saya kemudian mengikuti instruksi luar biasa Eliah Kagan untuk menginstal linux-image-genericdari CD langsung. Itu memang menginstal 150 MB kernel baru, tetapi sayangnya itu tidak menyelesaikan masalah.
Untungnya, saya menemukan halaman ini . The Boot-Repairalat sudah benar, sistem saya berjalan lagi.
Saya hanya ingin menambahkan pengalaman yang saya lalui hari ini dalam meningkatkan ke Willy. Saya membersihkan sedikit dan saya menemukan diri saya hanya dengan memtest. google membuat saya mengerti bahwa saya telah menghapus kernel. Salah satu kendala yang saya miliki adalah jaringan yang lambat dan mengunduh ISO penuh bukanlah pilihan. Jadi saya menggunakan CD Ubuntu Minimal (hanya 40MB) dan boot di atasnya. Setelah mendeteksi opsi perangkat keras (yang membantu saya terhubung ke nirkabel) saya masuk ke opsi shell. Saya mengikuti instruksi @Lekensteyn dan saya berhasil. beberapa hal: Anda harus menyalin resolv.confsebelum chroot atau DNS Anda akan kacau dan karena pengguna yang masuk ada root, tidak perlu untuk sudo di mana pun.
Saya tahu ini lama tapi saya pikir menambahkan jawaban ini akan menambah nilai bagi mereka yang akan menghadapi masalah.
Jawaban:
Boot ke live CD (atau live USB), pasang beberapa sistem, chroot ke dalamnya dan instal kernel. Setelah instalasi kernel berhasil, unmount sistem file.
sudo mount /dev/sdXY /mnt
Pasang beberapa partisi khusus:
(opsional) Saat Anda terhubung ke jaringan, gunakan server DNS dari lingkungan Live Anda (jika tidak nama host mungkin tidak dapat diselesaikan):
/mnt
:sudo chroot /mnt
apt-get install linux-image-generic
(tidak perlu sudo karena Anda root setelah chroot)Setelah instalasi kernel berhasil, keluar dari chroot dan unmount beberapa sistem file:
sudo reboot
sumber
/mnt
. Ubuntu biasanya menangani unmount / menyinkronkan sistem file, tetapi ini terlihat lebih bersih bagi saya./dev/mdxxx
drive - dengan asumsi itu mdadm./etc/resolv.conf
(hapus jika itu adalah symlink) dan masukkan sesuatu sepertinameserver 8.8.8.8
itu (server DNS publik Google). Ganti jika perlu.cp /etc/resolv.conf /mnt/etc/resolv.conf
sebelum masuk ke chroot. Itu berhasil bagi sayaProsedur yang diperluas ini mencakup sebagian besar komplikasi yang dapat terjadi, termasuk masalah koneksi ke Internet di
chroot
, tidak mengetahui paket kernel mana yang harus diinstal (sebelum Ubuntu 12.10, tidak akan selalu demikianlinux-image-generic
), tidak mengetahui pada awalnya partisi mana atau bahkan drive fisik mana yang berisi sistem/
file, dan memiliki/boot
partisi yang terpisah .Saya belum menulis ini dengan mengacu pada salah satu prosedur lain di sini, meskipun Anda akan melihat beberapa kesamaan. Saya mendasarkannya, secara longgar, pada prosedur di sini (meskipun instruksi itu untuk sesuatu yang sangat berbeda, saya telah mengadaptasinya secara luas, dan hanya beberapa perintah, bukan prosa, yang disalin).
Anda menghapus semua paket kernel, dan Ubuntu tidak dapat boot tanpa kernel diinstal. Jadi solusinya adalah boot dari live CD / DVD / USB,
chroot
ke sistem yang diinstal, dan instal kernel di dalamnya.Boot dari live CD / DVD Ubuntu atau USB flash drive langsung.
Pilih Coba Ubuntu (bukan Instal Ubuntu ).
Saat desktop muncul, pastikan Anda terhubung ke Internet. Jika tidak, sambungkan ke Internet. Salah satu cara untuk melihat apakah Anda terhubung ke Internet adalah dengan membuka browser web. Anda bahkan dapat mengikuti petunjuk lainnya dengan membawa jawaban Tanya Ubuntu ini di browser web Anda, dalam sistem live CD / DVD / USB. Saya sangat merekomendasikan melakukan itu.
Buka jendela Terminal dengan Ctrl+ Alt+ T.
Di jendela Terminal, jalankan perintah ini untuk mendaftar partisi Anda:
Anda akan melihat sesuatu seperti ini (tetapi tidak akan persis seperti ini):
Periksa output yang Anda dapatkan, untuk menentukan nama perangkat dari partisi yang berisi sistem
/
file dari sistem Ubuntu yang diinstal pada hard drive (yang sedang Anda perbaiki).Jika Anda hanya memiliki satu
ext4
partisi, itu saja.Jika Anda memiliki lebih dari satu
ext4
partisi, itu mungkin yang pertama. Namun, jika yang pertama sangat kecil - kurang dari satu gigabyte - maka itu mungkin merupakan/boot
partisi yang terpisah (ingat itu juga).Harap dicatat bahwa ada atau tidaknya
boot
daftar di bawahFlags
ini tidak ada hubungannya dengan apakah suatu partisi adalah partisi yang terpisah atau tidak/boot
. Sistem saya, yang informasinya tercantum di atas, tidak memiliki/boot
partisi terpisah .Nama perangkat untuk partisi dimulai dengan nama perangkat untuk drive fisik, dinyatakan segera setelah
Disk
di baris kedua. Kemudian cukup tambahkan nomor partisi di akhir itu. Jadi, nama perangkat untuk partisi yang berisi sistem file saya/
adalah/dev/sda1
. Berikut adalah dua baris di mana saya menemukan informasi itu:Jika Anda memiliki lebih dari satu drive fisik, Anda akan mendapatkan lebih dari satu daftar seperti apa yang ditunjukkan di atas. Tetapi kecuali jika Anda memiliki sistem lain yang mirip Unix yang diinstal, Anda mungkin hanya akan memiliki satu drive yang berisi
ext4
partisi, setidaknya tanpa membuatnya secara sengaja di drive lain. Jika Anda memiliki banyak drive denganext4
partisi, makaext4
partisi yang berisi/
sistem file Anda mungkin ada di drive yang juga berisilinux-swap
partisi.Ini mungkin bahwa sistem Ubuntu Anda
/
filesystem pada partisi tipe lain dariext4
. Ketika ini terjadi, hampir selaluext3
, dan hampir selalu pada sistem yang cukup lama. Sangat jarang hal ini terjadi, kecuali jika Anda sendiri yang mengaturnya sendiri.Ingat nama perangkat partisi yang berisi
/
sistem file Anda (atau tuliskan). Jika berbeda dengan/dev/sda1
, maka Anda akan menggantinya/dev/sda1
dengan langkah-langkah di bawah ini.(Jika sepertinya Anda memiliki
/boot
partisi yang terpisah , ingat nama perangkat untuk itu juga.)Pasang
/
filesystem ke/mnt
, dan pasang/dev
filesystemnya:Periksa apakah sistem Ubuntu yang rusak yang Anda perbaiki memiliki
/boot
partisi terpisah yang harus dipasang secara terpisah. (Jika Anda yakin tidak, Anda dapat melewati ini.)Untuk memeriksa, jalankan:
Jika ada output (seperti
grub memtest86+.bin memtest86+_multiboot.bin
, tetapi tidak harus persis seperti itu), maka sistem yang rusak/boot
ada di partisi yang sama/
dan Anda tidak perlu me-mount apa pun untuk mengaksesnya.Tetapi jika tidak ada output, maka Anda harus me-mount sistem
/boot
file:Ganti
BOOT-PARTITION
dengan nama perangkat/boot
partisi (lihat langkah 6 di atas).chroot
ke dalam sistem yang rusak, pasang sistem file virtual penting yang tersisa, dan tetapkan beberapa variabel lingkungan penting:Tentukan apakah akses Internet berfungsi dari dalam dengan
chroot
menggunakanping
beberapa host andal yang dikenal merespons secara normal terhadap ping:Anda harus melihat sesuatu seperti ini:
Jika sebagian besar terlihat seperti itu, dan angka sebelumnya
% packet loss
kurang dari 100, maka koneksi internet di dalamnyachroot
berfungsi:Ini berfungsi, sehingga Anda dapat melewati langkah 11 .
Jika sebagian besar terlihat seperti itu, dan nomor sebelumnya
% packet loss
adalah 100, koneksi perlu pemecahan masalah. Pastikan koneksi pada sistem live CD (misalnya, melalui browser web, atau dengan menjalankan perintah yang sama dichroot
tab / jendela Terminal yang terpisah ) tidak berfungsi. Pastikan Anda mengetik perintah dengan benar. Gunakanwww.google.com
jika Anda belum.Jika output tidak terlihat seperti di atas sama sekali, tetapi sebaliknya mengatakan
ping: unknown host www.google.com
, maka jaringan belum berfungsi dichroot
.Siapkan jaringan di Internet
chroot
. Lewati langkah ini kecuali Anda mendapatunknown host
kesalahan di langkah 10 di atas.Untuk menyiapkan jaringan, cadangan sistem yang rusak ini
hosts
file, dan menyalin CD sistem hidup inihosts
danresolv.conf
file. (Anda tidak perlu mencadangkan versi sistem yang rusakresolv.conf
, karena file itu secara otomatis dibuat ulang saat itu juga.)Buka tab Terminal baru ( Ctrl+ Shift+ T) atau, jika Anda suka, jendela Terminal baru ( Ctrl+ Shift+ N, atau hanya Ctrl+ Alt+ T). Jalankan perintah ini di dalamnya:
(
exit
Perintah di akhir menutup tab / jendela baru.)Ulangi langkah 10 di atas untuk memastikan akses Internet berfungsi sekarang dari dalam
chroot
. Itu harus.Cari tahu paket kernel mana yang harus diinstal. Biasanya, ini akan terjadi
linux-image-generic
. Tapi tidak selalu.Jika Anda tidak yakin akan menginstal yang mana, sebagian tergantung pada rilis Ubuntu mana yang telah Anda instal, dan sebagian pada informasi lainnya. Jika Anda tidak yakin rilis Ubuntu mana yang telah Anda instal, cari tahu dengan menjalankan perintah ini (di
chroot
, bukan di jendela / tab Terminal terpisah):Di Ubuntu 12.10 (rilis Ubuntu berikutnya, saat ini dalam pengembangan), akan selalu seperti itu
linux-image-generic
. (Lihat ini , ini , dan ini .)Di Ubuntu 12,04 LTS, kemungkinan yang ada adalah
linux-image-generic
danlinux-image-generic-pae
. (Tidak seperti versi sebelumnya, 12.04 tidak lagi memiliki kernel server dan desktop terpisah.)Jika sistem Ubuntu yang diinstal (yang Anda perbaiki) adalah versi 64-bit, gunakan
linux-image-generic
. (linux-image-generic-pae
hanya berlaku untuk sistem 32-bit.)Dimungkinkan untuk memiliki sistem Ubuntu 32-bit yang diinstal pada komputer 32-bit atau 64-bit. Selain itu, Anda mungkin menggunakan CD live 32-bit atau 64-bit untuk memperbaiki sistem yang diinstal 32-bit. Jadi, jika Anda tidak tahu apakah sistem Ubuntu yang diinstal adalah 32-bit atau 64-bit, periksa dengan menjalankan perintah ini (di
chroot
, bukan di jendela / tab Terminal terpisah):Output akan berupa
32
atau64
.(Harap dicatat bahwa
uname -m
ini bukan cara yang benar untuk menemukan informasi ini, karena bahkan ketika berjalan dalamchroot
, yang akan memberitahu Anda arsitektur kernel yang berjalan , yang merupakan kernel CD sistem hidup dan tidak terpasang (rusak) sistem kernel.)Jika sistem Ubuntu yang terinstal (yang Anda perbaiki) adalah versi 32-bit, kernel terbaik untuk digunakan akan tergantung pada berapa banyak RAM yang Anda miliki. Saya merekomendasi:
linux-image-generic
jika Anda memiliki kurang dari 3 GB RAMlinux-image-generic-pae
jika Anda memiliki 3 GB RAM atau lebih.(Beginilah installer Ubuntu memilih yang mana yang akan disiapkan, sejak installer memperoleh kemampuan untuk menginstal kernel PAE. Lihat resolusi untuk bug ini . Jika Anda ingin mengetahui apa itu PAE, lihat artikel Wikipedia ini . Jika Anda ingin pelajari tentang PAE di Ubuntu, lihat halaman wiki Ubuntu ini .)
Jika Anda tidak tahu berapa banyak RAM yang Anda miliki, jalankan perintah ini untuk mencari tahu:
Itu tercantum dalam kilobyte . Untuk mengonversi ke gigabyte , bagilah dengan 1.048.576 (1024 2 ).
Pada rilis Ubuntu sebelumnya 12,04, kemungkinan besar kemungkinan
linux-image-generic
,linux-image-generic-pae
, danlinux-image-server
.linux-image-server
.Inilah saat yang telah Anda tunggu-tunggu! Instal kernel di sistem yang rusak.
(Seperti sebelumnya, kecuali jika dinyatakan sebaliknya, perintah ini dijalankan di
chroot
, bukan di jendela / tab Terminal terpisah.)Ganti
linux-image-generic
dengan paket kernel apa pun yang Anda putuskan untuk diinstal pada langkah 12 di atas, jika berbeda.Jika Anda harus melakukan langkah 11 untuk mengatur jaringan di
chroot
, kembalikanhosts
file yang lama . Jika Anda melewatkan langkah 11, lewati langkah ini juga.Untuk mengembalikannya, jalankan perintah ini:
Lepas sistem file,
exit
darichroot
:Matikan live CD / DVD / sistem USB, lepaskan live CD / DVD atau USB flash drive. Boot ke sistem yang diinstal pada hard drive, yang baru saja Anda perbaiki. Anda telah menginstal paket kernel di dalamnya (dan sebagai bagian dari instalasi, kernel yang disediakannya akan ditambahkan kembali ke menu boot GRUB2). Jika semuanya berfungsi dengan benar, sistem Anda harus boot tanpa masalah. (Saya pikir ini mungkin membutuhkan waktu lebih lama untuk boot dari biasanya, kali ini.)
PENOLAKAN: Saya tidak menguji prosedur di atas pada setiap sistem Ubuntu yang memungkinkan , jadi ada kemungkinan ada kesalahan di dalamnya yang belum saya identifikasi.
Di masa depan, saya sarankan selalu mencoba untuk tetap menginstal dua kernel. Ada baiknya memiliki dua jika salah satu dari mereka berhenti bekerja karena alasan apa pun (Anda dapat memilih yang lain di menu boot GRUB2). Selain itu, jika Anda bermaksud menyimpan dua kernel dan Anda secara tidak sengaja menghapus satu kernel lebih dari yang seharusnya dan reboot, Anda masih memiliki satu yang tersisa untuk boot.
sumber
/etc/resolv.conf
saat ini dikelola olehresolvconf
, itu akan secara otomatis dihasilkan ketika menggunakan NetworkManager dan dapat dengan aman dihapus menggunakanrm /etc/resolv.conf
seperti yang Anda ketahui .Ketika saya menghapus kernel saya, saya menemukan solusi ini di Forum Ubuntu. Saya mengikuti setiap langkah dan sistem dipulihkan. Semoga ini bisa membantu Anda.
Chroot mungkin berfungsi, chroot berarti bahwa ketika Anda memulai sistem, Anda mengubah sistem file root. Misalnya Anda mulai dari CD langsung tetapi Anda mengubah root "/" ke tempat ubuntu Anda diinstal.
Katakanlah ubuntu Anda terinstal di / dev / sda2 maka Anda dapat mencoba perintah berikut:
Kode:
sekarang Anda root "/" di / dev / sda2, coba instal kernel
Saya harus melakukan sedikit tebakan di sini karena saya tidak pernah melakukan ini sebelumnya tetapi ini harus tentang hal itu. Tidak tahu apakah Anda mendapatkan peringatan kesalahan fstab (seperti tidak dapat menemukan root).
Sekarang Anda perlu membersihkan beberapa hal dan melepas partisi yang terpasang: Kode:
Dan Anda dapat reboot untuk melihat apakah itu berhasil.
URL untuk utas: http://art.ubuntuforums.org/showthread.php?t=1688928
sumber
/etc/hosts
dan menghapus/sbin/initctl
? Itu ada di sana karena suatu alasan./sbin/initctl
ataudbus-uuidgen
ataudpkg-divert
. Anda mungkin perlu mengganti/etc/hosts
untuk terhubung ke Internet, tetapi tidak biasanya, dan jika Anda melakukannya, Anda harus mengembalikan yang asli. Pada sistem yang diinstal (daripada CD langsung yang melakukan booting lalu membongkar sistem file squashfs), Anda tidak harus menjalankanupdate-initramfs
atau bahkanupdate-grub
setelah menginstal kernel.linux-image-2.6.32-26-generic
tidak akan menjadi kernel yang tepat bagi kebanyakan orang untuk menginstal.Setelah saya menghapus kernel lama dari Trusty14.04 kemarin (FTR: Saya tidak menghapus dua yang terbaru!) Sistem saya tidak bisa boot lagi. GRUB menunjukkan
Tidak tahu kenapa.
Saya kemudian mengikuti instruksi luar biasa Eliah Kagan untuk menginstal
linux-image-generic
dari CD langsung. Itu memang menginstal 150 MB kernel baru, tetapi sayangnya itu tidak menyelesaikan masalah.Untungnya, saya menemukan halaman ini . The
Boot-Repair
alat sudah benar, sistem saya berjalan lagi.sumber
Saya hanya ingin menambahkan pengalaman yang saya lalui hari ini dalam meningkatkan ke Willy. Saya membersihkan sedikit dan saya menemukan diri saya hanya dengan memtest. google membuat saya mengerti bahwa saya telah menghapus kernel. Salah satu kendala yang saya miliki adalah jaringan yang lambat dan mengunduh ISO penuh bukanlah pilihan. Jadi saya menggunakan CD Ubuntu Minimal (hanya 40MB) dan boot di atasnya. Setelah mendeteksi opsi perangkat keras (yang membantu saya terhubung ke nirkabel) saya masuk ke opsi shell. Saya mengikuti instruksi @Lekensteyn dan saya berhasil. beberapa hal: Anda harus menyalin
resolv.conf
sebelum chroot atau DNS Anda akan kacau dan karena pengguna yang masuk ada root, tidak perlu untuk sudo di mana pun.Saya tahu ini lama tapi saya pikir menambahkan jawaban ini akan menambah nilai bagi mereka yang akan menghadapi masalah.
sumber