Ubuntu dağıtım yükseltmesi sırasında kapatma işleminden kurtarma


18

Bir dağıtım yükseltme (Ubuntu 8.10 -> 9.04) sırasında beklenmedik bir şekilde kapatılan bir bilgisayarım var. Şimdi önyükleme bitmeyecek - çeşitli X hataları, ardından giriş ekranına gider, ancak girişlere izin vermez.

Ben bir yedek var ve / ev verileri hala sürücüde Tamam bu yüzden hiçbir acil, ama tam bir yeniden oluşturma hala can sıkıcı ve zaman alıcı bir süreçtir. Bundan kurtulmanın bir yolu var mı? 9.04 CD'm var, üstüne yüklemeye çalışırken tartışıyordum - bu iyi bir fikir mi?

Bunu yapmazsanız, sürücüyü kontrol etmenin ve kurulu bir yazılım listesi oluşturmanın iyi bir yolu var mı ve tercihen dışarıdan / evden (örneğin / vb.)


Tekrar sıfırdan başlamam gerekirse, beklenmedik kapanıştan sorumlu kişi ile başa çıkmak için herhangi bir öneriniz var mı? :)


EDIT: Tüm cevaplar için çok teşekkür ederim, gerçekten her birinden bitleri kullanmak için ihtiyaç duyduğum gibi tüm cevapları kabul etmem gerekiyor. Tamamen böyle bir şey kullanarak yükleme onarım başardı:

sudo dpkg --configure -a
sudo apt-get update
sudo dpkg --configure -a
sudo dpkg --configure -a --abort-after=99999
sudo apt-get dist-upgrade
sudo apt-get -f install
sudo apt-get dist-upgrade

1
Bir LART kullanın ( catb.org/jargon/html/L/LART.html ): "LART klasiği, kulüp olarak kullanılabilen 2x4 veya başka bir büyük tahta kütüktür [...] topuzlar, otomatik silahlar, alev püskürtücüler ve taktik nükleer silahların hepsinin partizanları var. "
David Schmitt

Giriş bilgilerinizi gerçekten girebilir misiniz, yoksa klavye ve / veya fare kullanılamıyor mu?
Oddmund

Kimlik bilgilerini yazabilirdim, ancak daha fazla ilerlemez. CTRL + ALT + F1 bana bir terminal verdi ve orada giriş yapabildim
Colin Pickard

/ Usr, / home ve benzeri klasörler ayrı disklerden monte edildiğinde sorun yaşayabilirsiniz, bu durumda bağlama yardımcı olur. mount --bind / proc / chrooted / proc mount --bind / mnt / usr / chrooted / usr kullanın

Yanıtlar:


11

Kök olarak dpkg kullanabileceğiniz bir yere giderseniz, dpkg --configure -a

Ancak, bozuk bir dağıtım için patladığını görebilirsiniz, bu yüzden ihtiyacınız olabilir:

dpkg --configure -a --abort-after=99999

7

CTRL-ALT-F1 tuşlarına basmayı deneyin ve bir komut istemi alıp almadığınızı kontrol edin. Giriş yapıp yapamayacağınızı görün, ardından sudo apt-get dist-upgrade komutunu çalıştırmayı deneyin . Bu, yükseltmeyi de tamamlamanızı sağlayacaktır. Hatalar alabilirsiniz, bu nedenle sudo dpkg --configure -a kullanmayı denemeniz gerekebilir .


Yüklü yazılımların bir listesini almak için dpkg --get-selection komutunu çalıştırabilirsiniz . Bu komutun çıktılarını bir dosyaya kaydederseniz cat seçimleri | sudo dpkg - set-selection'leri seçin ve ardından tüm paketleri kurmak için sudo apt-get dselect-upgrade komutunu kullanın .

Bu rotaya giderseniz, / etc ve / home klasörlerinizi muhtemelen başka bir cihaza yedeklemelisiniz.


Sanırım yedek betiklerime dpkg --get-selection'leri ekleyeceğim. Çok kullanışlı.
Colin Pickard

5
sudo apt-get update
sudo dpkg --configure -a
sudo apt-get update
sudo apt-get dist-upgrade

1. satır karşıdan yüklediğiniz repo düzeyini günceller

2. satır "kötü" durumda olan tüm paketleri yeniden yapılandırır

Deponun 2. satırın işlemi sırasında yeni sürüme "geçmesi" durumunda 3. satır oradadır.

4. satır işi bitirmelidir.


5

Yükseltme sırasında güç kesildikten sonra Xubuntu'nun açılmayacağı felaket bir durumdan kurtuldum. POST'tan yaklaşık 10 saniye sonra, Xubuntu bir dizi hata ile dururdu (grub'ta "kurtarma" seçeneğini yüklemeye çalışmak da işe yaramaz).

Eğer kimse bunun üzerine tökezlerse, ben bir terminal penceresine almak için bana yardımcı olan Ubuntu forumlarından bazı bilgiler gönderiyorum, böylece Colin ve Avery yukarıda yayınlanan komutları kullanabilirsiniz.

---------- snip ---------- snip ---------- snip ---------- snip ------ ----

ubuntuforums.org/showthread.php?t=157250

Diyelim ki yükseltme işleminden sonra sisteminiz eridi veya yeni çekirdeğiniz önyükleme yapmıyor. Sorunu apt-get ile çözemezsiniz, çünkü bir komut satırına bile erişemezsiniz; çekirdek sadece hataları yayar ve önyükleme asılı kalır. Neyse ki, canlı bir cd ile sisteminizi onarabilir ve çalıştırabilirsiniz. Canlı cd için 2 seçeneğiniz var: Knoppix veya Ubuntu canlı cd. Knoppix genellikle daha iyi bir donanım algılamasına sahip olduğundan, bu örnek olarak kullanılacaktır.

  1. İlk olarak, iso'yu http://www.knoppix.org/ adresinden indirin ve bir diske yazın.
  2. BIOS'unuzu cd'den önyüklemeye ayarlayın, Knoppix diskine yerleştirin ve önyükleyin.
  3. Sabit sürücünüz, sisteminize bağlı olarak KDE masaüstünde hda1 veya sdb2 veya başka bir şey olarak görünmelidir.
  4. Bağlamak için üzerine tıklayın, ardından sağ tıklayın, eylemler -> okuma-yazma moduna değiştirin. Bir iletişim kutusu açılır; evet'i tıklayın.
  5. Şimdi, Knoppix menüsünde (paneldeki K'nin yanındaki) bulunan bir kök terminal açın. Girin: chroot / mnt / hda1 veya sabit sürücünüzün simgesi masaüstünde ne diyorsa.

Artık apt-get dahil olmak üzere sabit sürücüdeki tüm komutları kullanabilirsiniz. Bu hatayı alırsanız: "/ dev / null: İzin reddedildi" sonra şunu yapın: "sudo rm / dev / null" ve bu işlem devam etmelidir. Şimdi, çekirdeğinizi, udev'inizi veya sisteminizi bozan herhangi bir şeyi yükseltmek için apt-get komutunu kullanın.

---------- snip ---------- snip ---------- snip ---------- snip ------ ----

Çok mükemmel çalıştı! Sabit sürücümü talimatlara göre monte ettim, bir terminal penceresi açtım, "sudo chroot / media / hda1" girdim ve sonunda sabit sürücüme erişebildim. Daha sonra yükseltme işlemini yeniden başlatmak için bu iş parçacığında daha önce yayınlanan komutları kullanabildim. :)

Ubuntu Live / Kurulum CD'sinin neden tüm bu kurtarma işlemini kolaylaştırmak için yerleşik bir "kurtarma konsolu" bulunmaması şaşırtıcıdır.


Bu benim için benzer bir durumda işe yaradı. SU üzerindeki bu yanıt , bölümlerin canlı CD'den doğru bir şekilde nasıl monte edileceğine dair harika talimatlar verir.
zelanix

1

Benim için ayrıca başka bir komut, tüm paketler için chro ortamda düzgün yapılandırmaya yardımcı olur (bunu önce çalıştır dpkg ,distvb.):

Upstart işleri bir chroot içinde başlatılamaz, çünkü upstart bir servis süpervizörü görevi görür ve chroot içindeki işlemler, chroot dışında çalışan uptart ile iletişim kuramaz (Hata: 430224). Bu, başlangıç ​​komut dosyaları yerine uptart işlerini kullanmak için dönüştürülmüş bazı paketlerin bir chroot içinde yükseltilememesine neden olur. Kullanıcılara, kendi köklerini / sbin / initctl / bin / true'yı gösterecek şekilde yapılandırmaları önerilir; aşağıdaki komutlar chroot içinde çalışır:

Kod:

dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initct
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.