Reboot hang 100% - mungkin di mountall


8

UPDATE: Tampaknya mountall tergantung di dalam rutin emit_event (), yang dipanggil setelah / di-remount untuk memancarkan suatu peristiwa ke efek itu. Di dalam emit_event, ia memanggil ply_boot_client_flush (), kemudian membangun array env, memanggil upstart_emit_event (), lalu dbus_pending_call_block (). Dan di sana tergantung. Jadi ada ide mengapa dbus_pending_call_block akan menggantung tanpa batas waktu? Plymouth rusak? dbus? pemula? Adakah saran untuk perbaikan atau diagnostik lebih lanjut?

Reboot Ubuntu 10,04 LTS saya, mesin AMD 64bit hang 100%. Lampu akses drive mati, tetapi tombol alt-sysreq bekerja. Perangkat kerasnya adalah laptop Lenovo W700ds. Sekarang, saya minta maaf sebelumnya, karena saya sangat terbatas dalam informasi tentang sistem yang saya miliki, dan apa yang dapat saya lakukan dengan itu (karena tidak mau boot). Saya dapat mem-boot dari CD 10,04 - menggunakannya seperti disk penyelamat. Saya dapat fsck, mount dan membaca & menulis ke partisi saya - mereka baik-baik saja. Saya sudah mencoba memformat ulang swap saya dengan mkswap. Saya memiliki 4 partisi ext4 di sistem saya: sda1 adalah /, sda2 adalah / usr, sda3 adalah / home, dan yang ke 4 yang saya gunakan untuk penyimpanan data / sdb1 (adalah seluruh disk, mount di mountpoint / hdb yang saya buat) . Ada juga / sda4 yang swap. Saat ini saya sedang menulis ini dari browser saya telah dibuka di 'sesi penyelamatan' dari 10.

Saya akan sangat menghargai saran / komentar tentang apa yang bisa saya lakukan untuk membantu mendiagnosis apa yang menggantung, mengapa, dan apa yang bisa saya lakukan untuk memperbaikinya. Saya sudah melakukan pencarian web, tetapi tidak menemukan yang baru di sepanjang baris ini (beberapa laporan bug berusia 1-1,5 tahun dengan gejala yang sama, tetapi perbaikannya tidak berhasil).

Saya menginstal 10,04 pada disk baru sekitar bulan Juli pertama, kemudian menggunakan aptitude untuk memperbarui semuanya. Sejak itu saya telah menginstal LOTSpaket (saya akan lampirkan log dpkg di bawah). Dengan sda menjadi 750GB (/ 20GB, / usr 80GB) saya punya banyak ruang untuk menginstal paket yang saya 'suatu hari nanti akan menggunakan'. Saya ingin tahu apakah ini salah satu dari paket yang saya instal yang telah mengacaukan sistem saya? Saya menginstal kernel 2.6.32-32-generik dan reboot, tetapi telah menginstal banyak paket lagi sejak itu. Saya reboot mesin ini sesering mungkin - lebih suka hibernasi sambil berpindah dari satu tempat ke tempat lain. Namun belakangan ini, saya memperhatikan beberapa perilaku aneh yang terkait dengan de-hibernasi: ketika sistem akan de-hibernasi akan memunculkan screen saver gnome dengan kata sandi yang diperlukan untuk membuka kunci - yah, itu tidak akan mengenali kata sandi saya! Saya harus alt-F1, login sebagai root, dan bunuh screen saver. Maka semua akan baik-baik saja, atau begitulah tampaknya. Juga, setelah de-hibernasi, saya sering melihat sebentar sambil mengedipkan sampah berwarna-warni di layar. Itu akan hilang, jadi saya tidak mencoba mencari penyebabnya. Poin lain yang mungkin relevan adalah bahwa saya perlu menggunakan "nomodeset" dalam instalasi 10,04, dan ketika membuka shell penyelamatan dari CD yang sama, jika saya hanya menggunakan nomodeset, ia akan hang dengan LED NumLock yang berkedip atau Caps Lock LED ( crash?), tetapi jika saya juga menggunakan "noapic nolapic acpi = off" maka muncul ok. Saya sudah mencoba opsi ini dengan sistem saya untuk melihat apakah mereka menyembuhkan masalah boot hang - tidak. jika saya hanya menggunakan nomodeset maka pada akhirnya akan hang dengan LED NumLock yang berkedip atau LED Caps Lock (crash?), tetapi jika saya juga menggunakan "noapic nolapic acpi = off" maka muncul ok. Saya sudah mencoba opsi ini dengan sistem saya untuk melihat apakah mereka menyembuhkan masalah boot hang - tidak. jika saya hanya menggunakan nomodeset maka pada akhirnya akan hang dengan LED NumLock yang berkedip atau LED Caps Lock (crash?), tetapi jika saya juga menggunakan "noapic nolapic acpi = off" maka muncul ok. Saya sudah mencoba opsi ini dengan sistem saya untuk melihat apakah mereka menyembuhkan masalah boot hang - tidak.

Ini adalah mesin yang saya gunakan untuk bekerja serta selama hampir segala sesuatu yang lain, sehingga mendapatkan itu untuk boot lagi adalah TOP prioritas. / Rumah utuh, yang bagus. Tapi aku hampir kehabisan akal untuk mencoba mendiagnosis (apalagi memperbaiki) penyebab booting macet ini.

Saya mem-boot sistem, dan mulai menjalankan skrip konfigurasi mountall di /etc/init/mountall.conf. Saya melihat output dari mountall menjalankan fsck - 4 baris yang mengatakan: fsck dari util-linux-ng 2.17.2 (thats satu per partisi ext4). Lalu ada 4 baris lagi dari fsck yang memberi tahu pengguna bahwa partisi-partisi itu ditemukan "bersih". Dan hanya itu - semuanya berhenti begitu saja. LED aktivitas drive mati. Saya dapat menggunakan tombol alt-sysreq, tetapi sejauh ini tidak terbukti bermanfaat. Saya melihat laporan bug di mana satu pengguna menggunakan alt-sysreq-i untuk mematikan proses dan menjatuhkannya ke dalam shell. Bagi saya, ia mengatakan telah membunuh proses (udev dan udev-jembatan dan plymouth, kata udev respawning, dll), tapi saya tidak mendapatkan shell.

Saya telah berusaha menentukan apa yang sebenarnya menggantung. Untuk tujuan ini, saya telah bermain-main dengan /etc/init/mountall.conf. Saya telah menambahkan garis gema, dan saya telah menambahkan opsi -v (verbose) ke exec mountall. Tidak ada garis gema setelah eksekutif mountall ditampilkan, jadi ini mungkin berarti mountall menggantung. Atau, itu mungkin tidak menampilkan yang terakhir dari output - dalam hal ini mountall mungkin telah keluar dan sesuatu yang lain mungkin menggantung. Saya perhatikan bahwa alt-sysreq-i tidak mengatakan mountall terbunuh. Saya telah mencoba untuk mempersempit apa yang mungkin bergantung pada sistem dengan berkomentar sda3 (/ home), swap dan sdb1 (/ hdb) dari fstab, tetapi masih hang.

Ada banyak yang bisa saya lakukan sendiri, tetapi saya merasa seperti berada di atas kepala saya di sini. Saya ingin, misalnya, mendapatkan kode sumber untuk mountall, menambahkan flag yang dicetak, mengkompilasi ulang dan menempelkannya di sistem saya - untuk mempersempit A) jika mountall benar-benar menggantung, dan B) apa yang menggantung. TETAPI, saya tidak bisa mem-boot mesin saya ke shell yang dapat dikompilasi di dalam - dan lingkungan disk penyelamatan hanya 2.6.32-28-generik # 55 - sehingga tidak cocok dengan sistem saya. Saya ingin menghapus atau menginstal ulang paket, tetapi sekali lagi, saya tidak bisa mem-boot mesin saya dan melakukan ini.

(file log dpkg saya adalah beberapa MB, jadi saya akan melampirkannya di kotak dialog berikut)

Terima kasih, Greg


baik, jika Anda dapat boot usb stick atau livecd, pasang disk di sana Anda dapat chroot ke komputer Anda dan menghapus paket. Tetapi di sisi lain, Anda mengatakan bahwa ini adalah komputer kerja Anda, ia memiliki prioritas TOP. Jadi, bandingkan waktu yang dihabiskan untuk mencari apa yang salah dengan waktu instalasi yang bersih (Anda memiliki rumah di partisi terpisah)?
Denwerko

Saya akan mengulangi @denwerko - mungkin Anda hanya perlu beberapa jam untuk melakukan instalasi bersih dan kemudian menginstal perangkat lunak tambahan yang Anda butuhkan. Masukkan USB stick / drive USB eksternal dan salin konten / home Anda ke sana. Anda dapat mengembalikannya setelah itu. Mengenai "stabilitas" - tergantung - paket apa yang Anda instal dan dari mana? Menginstal paket dari PPA dan mengkompilasi kode cenderung menyebabkan ketidakstabilan lebih dari menginstal paket standar dari pusat perangkat lunak / manajer paket sinaptik.
fossfreedom

@reg - perangkat keras apa yang Anda miliki yang perlu diinstal driver tambahan - mis. kartu jaringan / kartu grafis? Sudahkah Anda mencoba menyederhanakan desktop Anda dengan menonaktifkan / mengeluarkan semua kartu - biarkan hanya dasar-dasar seperti grafik terintegrasi & keyboard kabel?
fossfreedom

@Reg jika ini diselesaikan mengapa jawaban mereka tidak diterima? Silakan ikuti aturan umum untuk AskUbuntu dan tambahkan solusi Anda ke jawaban dan terima.
Rinzwind

Jawaban:


1

Denwerko: Saya tidak melakukan apa pun pada mesin saya yang seharusnya menghasilkan hasil ini. Itu cukup stabil di bawah Ubuntu 9,10 - tidak pernah seperti ini terjadi. Semua bermain-main dengan sumber, mengkompilasi ulang hal-hal - semuanya adalah kode ruang pengguna. Saya belum bermain-main dengan OS. Saya juga belum menginstal kode ruang-OS di luar saluran standar (manajer paket aptitude / synaptic, paket deb yang diperoleh melalui alat-alat itu). Greg kemarin

Namun, saya telah memperoleh kode sumber untuk mountall 2.15.3 dan mendapatkannya untuk dikompilasi di lingkungan penyelamatan, setelah 5 menginstal (libnih-dev, libnihdbus-dev, lindbus-1-dev, linudev-dev, libplymouth-dev) . Saya telah menambahkan debugging cetakan dalam kode melalui panggilan nih_info (), dan saya telah membuat spawns yang mengeksekusi pemblokiran fsck alih-alih non-blocking. Saya sedang mengerjakan teori bahwa mountall menabrak suatu tempat (atau nih, atau dbus atau plymouth ...). Saya sepertinya tidak mendapatkan output ke tempat yang sama dalam setiap kode yang dijalankan, tetapi tampaknya berhenti beberapa saat setelah remount dari / dev / sda1 ke / - di rutin mount (). Greg kemarin

Saya juga telah melakukan dpkg -r paket melalui chroot seperti yang Anda sarankan, dan itu tampaknya berhasil (kecuali satu skrip deinstall yang ingin melakukan sesuatu dengan / proc). Saya menghapus anggur, dan paket kompatibilitas 32bit yang diperlukan (lib32nss, ia32lib, lib32v4l, dll.) Dan beberapa paket ibus yang tidak diinstal di dalam lingkungan penyelamatan (beberapa paket ibus adalah, dan saya berhati-hati untuk tidak menghapusnya) -hapus plasma-widget-kimpanel-backend-ibus, ibus-qt4, ibus-qt1. Tidak ada yang memengaruhi masalah ini, jadi saya telah menghapus lebih banyak paket yang tidak saya butuhkan sekarang (paket wx widget & jdk, dll) -tidak ada efek

UPDATE: Tampaknya mountall tergantung di dalam rutin emit_event (), yang dipanggil setelah / di-remount untuk memancarkan dan memunculkan efek tersebut. Di dalam emit_event, ia memanggil ply_boot_client_flush (), kemudian membangun array env, memanggil upstart_emit_event (), lalu dbus_pending_call_block (). Dan di sana tergantung. Jadi ada ide mengapa dbus_pending_call_block akan menggantung tanpa batas waktu? Plymouth rusak? dbus? pemula? Adakah saran untuk perbaikan atau diagnostik lebih lanjut?

SOLUSI Jadi, sepertinya saya telah menginstal cloud-init dan cloud-utils karena saya suatu hari nanti mungkin ingin bermain dengannya. Will, ternyata sekrup cloud-init dengan konfigurasi ureadahead, dan diluncurkan ketika peristiwa dbus 'dipasang /' terjadi, yang menyebabkan sistem saya hang segera setelah mengirimkan pesan dbus itu, yang terjadi setelah / di-remount dari ro ke r / b. Saya menghapus cloud-init dan cloud-utils dan semuanya tampak baik-baik saja sekarang. Kecuali, saya mengantuk dan telah kehilangan 24 jam dalam hidup saya: \

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.