Ubuntu Upgrade Problem lösen

Schon zum zweiten Mal laufe ich in das Problem, dass die Upgrades des Ubuntu Systems sich nicht mehr installieren lassen. Wenn man nach den Symptomen in deutscher Sprache sucht findet man leider auch nicht allzu viel. Daher hier meine Anleitung wie ich die Installation wieder ans Laufen gebracht habe, samt dem Löschen nicht benötigter Kernel Versionen.
Für mich zur Erinnerung und vielleicht für Euch als Anregung.

Ihr solltet außerdem in der Lage sein mit der Shell umzugehen. Ich übernehme keinerlei Haftung für die Korrektheit oder für Schäden die durch das Befolgen dieser Anleitung entstehen. Ihr handelt auf eigene Gefahr.

Symptome

  • Der normale Upgrade Manger meldete ein Problem bei der Installation und konnte die Linux Kernel Header Dateien nicht installieren.
  • In der Kommand Bar erscheint ein Stoppschild, dass darauf hinweist, dass die Upgrade Funktion beschädigt ist.
  • sudo apt-get -f install schmeißt in etwa den im folgenden Unterkapitel gezeigten Log aus.
  • Im Ubuntu Software Center gibt es sofort eine Nachricht, dass das Paketierungssystem aus dem Tritt ist und man weder installieren noch de-installieren kann
  • Wenn man mit baobab (Shell Aufruf) in etwa folgendes in /usr/ sieht
    Bildschirmfoto baobab Ubuntu Kernel Header

Ich habe dann auch alle Varianten versucht, um z.B. Linux Header Dateien zu de-installieren aber alles läuft in einen Fehler.

sudo apt-get -f install

Ihr solltet dasselbe Problem haben, wenn die unten rot markierte Nachricht erscheint.

 

georg@georg-PC:~$ sudo apt-get -f install
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Statusinformationen werden eingelesen... Fertig
Abhängigkeiten werden korrigiert... Fertig
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
kde-l10n-de language-pack-kde-de language-pack-kde-en linux-headers-3.2.0-29 linux-headers-3.2.0-64 language-pack-kde-en-base kde-l10n-engb
linux-headers-3.2.0-64-generic-pae linux-headers-3.2.0-29-generic-pae language-pack-kde-de-base nvidia-settings-304 libkms1 openjdk-7-jre-lib
Verwenden Sie »apt-get autoremove«, um sie zu entfernen.
Die folgenden zusätzlichen Pakete werden installiert:
linux-headers-3.2.0-84
The following NEW packages will be installed
linux-headers-3.2.0-84
0 to upgrade, 1 to newly install, 0 to remove and 3 not to upgrade.
3 nicht vollständig installiert oder entfernt.
Es müssen noch 0 B von 11,7 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 56,4 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren [J/n]? Y
(Lese Datenbank ... 1194962 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacken von linux-headers-3.2.0-84 (aus .../linux-headers-3.2.0-84_3.2.0-84.121_all.deb) ...
dpkg: Fehler beim Bearbeiten von /var/cache/apt/archives/linux-headers-3.2.0-84_3.2.0-84.121_all.deb (--unpack):
 »/usr/src/linux-headers-3.2.0-84/include/linux/netfilter/xt_sctp.h.dpkg-new« konnte nicht angelegt werden (während der Verarbeitung von »./usr/src/linux-headers-3.2.0-84/include/linux/netfilter/xt_sctp.h«): Auf dem Gerät ist kein Speicherplatz mehr verfügbar
Es wurde kein Apport-Bericht verfasst, da die Fehlermeldung auf einen Fehler wegen voller Festplatte hindeutet
dpkg-deb: Fehler: Unterprozess einfügen wurde durch Signal (Datenübergabe unterbrochen (broken pipe)) getötet
Fehler traten auf beim Bearbeiten von:
/var/cache/apt/archives/linux-headers-3.2.0-84_3.2.0-84.121_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Lösung

  1. Auf jeden Fall, erst mal in der Shell
    sudo apt-get -f install
    aufrufen. Vielleicht ist das Problem ja damit schon behoben.

Wenn das nichts geholfen hat und Ihr auch die Log Zeile “Auf dem Gerät ist kein Speicherplatz mehr verfügbar” findet fahrt wie folgt fort, um Speicher manuell freizugeben.

Speicherplatz manuell freimachen

Achtung das Löschen der Kernel Dateien kann ein System unbrauchbar machen. Insbesondere das Löschen der aktuellen Kernel Dateien führt ins Verderben.

  1. Feststellen welchen Kernel man selbst am laufen hat. uname -r war bei mir ergibt bei mir 3.2.0-84-generic-pae.
    !!
    Dateien die diese Nummer z.B. bei mir 3.2.0-84 enthalten auf keinen Fall löschen!! (wird bei Euch sicher eine andere Nummer sein)
  2. Listen der Header Datein ls /usr/src
  3. Löschen von Header Dateien rm -rf /usr/src/3.xxxxx (Sucht Euch die kleinsten Nummern raus bei mir z.B. 3.2.0.35) und löscht das ganze Verzeichnis
  4. Listen der Lib Dateien ls /lib/modules/
  5. Löschen der Lib Dateien rm -rf /lib/modules/3.xxxx (Nehmt hier die selben Nummern wie vorher bei den Headern
  6. Jetzt nochmal sudo apt-get -f install. Wenn es geklappt hat dann läuft das jetzt durch

Das war aber nur ein Teil der Miete, denn jetzt heißt es…

Aufräumen

Uns so geht das Aufräumen und das Freigaben von mehr Speicherplatz

  1. Die Header Dateien der Kernel die Installiert sind kann man sich anzeigen lassen indem man in der shell folgendes eingibt
    sudo apt-get remove linux-
    dann zwei mal Tab drücken.
  2. Jetzt die Header Dateien der Kernel für die man vorher Dateien manuell gelöscht hat mit apt-get löschen. Auf keinen Fall die Version die man oben mit uname -r ermittelt hat!!
    z.B.
    sudo apt-get remove linux-headers-3.2.0-29
  3. Die libs der Kernel kann man sich anzeigen lassen indem man
    sudo apt-get purge linux-image-3
    eingibt und zweimal Tab drückt.
  4. Jetzt wie oben unter 2 das ganze für die libs
    sudo apt-get purge linux-image-3.2.0-29
  5. Nun und das ganze wiederholen für die Kernel die man nicht mehr benötigt. Die letzten 5 würde ich persönlich stehen lassen.
georg@georg-PC:~$ sudo apt-get purge linux-image-3.2.0-
linux-image-3.2.0-29-generic-pae  linux-image-3.2.0-60-generic-pae
linux-image-3.2.0-35-generic-pae  linux-image-3.2.0-61-generic-pae
linux-image-3.2.0-36-generic-pae  linux-image-3.2.0-63-generic-pae
linux-image-3.2.0-37-generic-pae  linux-image-3.2.0-64-generic-pae
linux-image-3.2.0-38-generic-pae  linux-image-3.2.0-65-generic-pae
linux-image-3.2.0-39-generic-pae  linux-image-3.2.0-67-generic-pae
linux-image-3.2.0-40-generic-pae  linux-image-3.2.0-68-generic-pae
linux-image-3.2.0-41-generic-pae  linux-image-3.2.0-69-generic-pae
linux-image-3.2.0-43-generic-pae  linux-image-3.2.0-70-generic-pae
linux-image-3.2.0-44-generic-pae  linux-image-3.2.0-72-generic-pae
linux-image-3.2.0-45-generic-pae  linux-image-3.2.0-75-generic-pae
linux-image-3.2.0-48-generic-pae  linux-image-3.2.0-76-generic-pae
linux-image-3.2.0-52-generic-pae  linux-image-3.2.0-77-generic-pae
linux-image-3.2.0-53-generic-pae  linux-image-3.2.0-79-generic-pae
linux-image-3.2.0-54-generic-pae  linux-image-3.2.0-80-generic-pae
linux-image-3.2.0-55-generic-pae  linux-image-3.2.0-82-generic-pae
linux-image-3.2.0-56-generic-pae  linux-image-3.2.0-83-generic-pae
linux-image-3.2.0-57-generic-pae  linux-image-3.2.0-84-generic-pae
linux-image-3.2.0-58-generic-pae
georg@georg-PC:~$ sudo apt-get purge linux-image-3.2.0-29-generic-pae linux-image-3.2.0-35-generic-pae linux-image-3.2.0-36-generic-pae linux-image-3.2.0-37-generic-pae linux-image-3.2.0-38-generic-pae linux-image-3.2.0-39-generic-pae linux-image-3.2.0-40-generic-pae 
 linux-image-3.2.0-41-generic-pae linux-image-3.2.0-43-generic-pae linux-image-3.2.0-44-generic-pae linux-image-3.2.0-45-generic-pae linux-image-3.2.0-48-generic-pae linux-image-3.2.0-52-generic-pae linux-image-3.2.0-53-generic-pae linux-image-3.2.0-54-generic-pae </strong>
linux-image-3.2.0-55-generic-pae linux-image-3.2.0-56-generic-pae linux-image-3.2.0-57-generic-pae linux-image-3.2.0-58-generic-pae linux-image-3.2.0-60-generic-pae linux-image-3.2.0-61-generic-pae linux-image-3.2.0-63-generic-pae linux-image-3.2.0-64-generic-pae linux-image-3.2.0-65-generic-pae linux-image-3.2.0-67-generic-pae linux-image-3.2.0-68-generic-pae linux-image-3.2.0-69-generic-pae linux-image-3.2.0-70-generic-pae linux-image-3.2.0-72-generic-pae linux-image-3.2.0-75-generic-pae linux-image-3.2.0-76-generic-pae linux-image-3.2.0-77-generic-pae
[sudo] password for georg:
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Statusinformationen werden eingelesen... Fertig
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
kde-l10n-de language-pack-kde-de language-pack-kde-en
language-pack-kde-en-base kde-l10n-engb language-pack-kde-de-base
nvidia-settings-304 libkms1 openjdk-7-jre-lib
Verwenden Sie »apt-get autoremove«, um sie zu entfernen.
The following packages will be REMOVED
linux-image-3.2.0-29-generic-pae* linux-image-3.2.0-35-generic-pae*
linux-image-3.2.0-36-generic-pae* linux-image-3.2.0-37-generic-pae*
linux-image-3.2.0-38-generic-pae* linux-image-3.2.0-39-generic-pae*
linux-image-3.2.0-40-generic-pae* linux-image-3.2.0-41-generic-pae*
linux-image-3.2.0-43-generic-pae* linux-image-3.2.0-44-generic-pae*
linux-image-3.2.0-45-generic-pae* linux-image-3.2.0-48-generic-pae*
linux-image-3.2.0-52-generic-pae* linux-image-3.2.0-53-generic-pae*
linux-image-3.2.0-54-generic-pae* linux-image-3.2.0-55-generic-pae*
linux-image-3.2.0-56-generic-pae* linux-image-3.2.0-57-generic-pae*
linux-image-3.2.0-58-generic-pae* linux-image-3.2.0-60-generic-pae*
linux-image-3.2.0-61-generic-pae* linux-image-3.2.0-63-generic-pae*
linux-image-3.2.0-64-generic-pae* linux-image-3.2.0-65-generic-pae*
linux-image-3.2.0-67-generic-pae* linux-image-3.2.0-68-generic-pae*
linux-image-3.2.0-69-generic-pae* linux-image-3.2.0-70-generic-pae*
linux-image-3.2.0-72-generic-pae* linux-image-3.2.0-75-generic-pae*
linux-image-3.2.0-76-generic-pae* linux-image-3.2.0-77-generic-pae*
0 to upgrade, 0 to newly install, 32 to remove and 3 not to upgrade.
Nach dieser Operation werden 3.634 MB Plattenplatz freigegeben.

Nach dem Aufräumen als Beispiel die verbleibenden Header Dateien.
Bildschirmfoto baobab Ubuntu Kernel Header nach Aufräumen

Fazit

Im Moment des Ausfalls hatte ich:

  • 89 MB pro Kernel an Header Dateien und
  • 135 MB pro Kernel an Lib Dateien
  • Das ganze 37 mal!

Nach dem Aufräumen hatte ich mal eben 6 GB freien Speicherplatz.

Das Problem ist je nach Perspektive:

  • Meine zu kleine Systempartition
  • Der Ubuntu Upgrade Prozess der dann eben doch nicht benutzerfreundlich die alten Kernel Logs aufräumt.

Aber ich tendiere zu letzterem. Es ist für den normalen Benutzer nicht nachvollziehbar warum das System plötzlich den Dienst versagt.  Wünschenswert wäre es nur die letzten sagen wir 5 Kernel aufzuheben oder den Platz für die Kernel sinnvoll zu begrenzen.

Und mal ehrlich wie oft geht beziehungsweise fällt man mehr als einen Kernel zurück?

File recovery from WD My Book World Edition NAS

I have a NAS WD ® My My Book World Edition and was happy with it but after six years of constant usage the device stopped working. At first from time to time the NAS was not accessible but a restart helped. Then one day it completely stopped to respond and the LED boot indicator (white light) showed no progress at all any longer.

Lucky you if you have a recent back-up. Mine was not recent enough and there were some pictures on the NAS that I wanted to recover?! So here is what happened and may help you as well. A few useful links that helped me can be found at the end of this article.

I provide this as a report about what helped in my situation yours may be completely different and if you follow the steps given in this article you act on your own risk and I will not be liable for any damage! I assume you have some knowledge of Linux and drives.

I hope you have  a backup of your data 😉

Well there are three main components of such a device that may break down. The power adapter, the controller and the harddrive. In my case the controller has a malfunction but the hard drive and power adapter were working.

There is a grain of salt for you. I was lucky that the drive was still working but if you have a problem it may as well be the case that your hard drive has a major failure. If you desperately need the data recovered don’t tinker around with it, please seek out professional support. Following the steps in this article may worsen the situation and you may lose all data.

Windows will kind of detect the drive but will not display it easily so I used Ubuntu 12.04.

Just mounting the drive to get a look at the data?

My first shot at the problem was to just mount the drive to see what happens. With the following command. (If your drive is not discovered as sdb you will have to change it accordingly maybe to sdc4, sdd4, …)

sudo mkdir /media/sdb
sudo mount -t ext3 -o ro /dev/sdb4 /media/sdb

Now you can explore the drive with the nautilus filemanager GUI. However there was no accessible data on that drive.The good news for me was that my drive looked physically OK!

So next tool please.

Using palimpset to look at the drive

There is a disk utility program that provides a nice graphical overview about what you have on a drive. The English name for it is “disk utility” the German name is “Laufwerksverwaltung”. So you better use the name palimpset if your GUI is not set to English by default.

Open the Ubuntu dock (press the windows key), enter palimpset and select the drive manager.  This will open the following program that allows you to have a look at installed hard drives.

Bildschirmfoto vom 2015-04-18 23:42:08-small

As you may see there are 4 raid partitions on that drive.

Partition one to three (sdb1, sdb2, sdb3) contain the operating system and swap partition of the WD controller.

Partition four (here sdb4) is the larger partition and contains the data.

So my version of the WD My book world edition utilizes for some reason a soft raid system that you can use on a Linux machine by installing mdadm. For the standard use case this is just adding hassle. Raid from my point of view makes most sense in set-ups of two and more disks for your data.

Using the tool parted to get drive information

$ sudo parted -l
Modell: ATA SAMSUNG SSD 830 (scsi)
Festplatte  /dev/sda:  128GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos

Nummer  Anfang  Ende    Größe   Typ       Dateisystem     Flags
1      32,3kB  62,9GB  62,9GB  primary   ntfs            boot
2      62,9GB  105GB   42,0GB  extended
5      62,9GB  82,9GB  20,0GB  logical   ext4
6      82,9GB  103GB   20,0GB  logical   ext4

Modell: ATA WDC WD10EARS-00M (scsi)
Festplatte  /dev/sdb:  1000GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: gpt

Nummer  Anfang  Ende    Größe   Dateisystem     Name     Flags
1      32,9MB  2040MB  2007MB  ext3            primary  RAID
2      2040MB  2303MB  263MB   linux-swap(v1)  primary  RAID
3      2303MB  3315MB  1012MB  ext3            primary  RAID
4      3315MB  1000GB  997GB                   primary  RAID

Modell: ATA WDC WD20EFRX-68E (scsi)
Festplatte  /dev/sdc:  2000GB
Sektorgröße (logisch/physisch): 512B/4096B
Partitionstabelle: gpt

Nummer  Anfang  Ende    Größe   Dateisystem  Name  Flags
1      1049kB  1144GB  1144GB  ext2
2      1144GB  2000GB  856GB   ext2

Installing the multi device administration program (mdadm)

To work with raid drives you will have to install the mdadm program.

$ sudo apt-get install mdadm</pre>
...
Generating mdadm.conf... done.
Removing any system startup links for /etc/init.d/mdadm-raid ...
update-initramfs: deferring update (trigger activated)
* Starting MD monitoring service mdadm --monitor [ OK ]
...

Then you can some brief information about the drive by invoking mdadm as shown here.

$ sudo mdadm --examine /dev/sdb1

/dev/sdb1:
Magic : a92b4e
Version : 0.90.00
UUID : 2ac90fc8:85f6502a:3b
Creation Time : Thu Mar 11 04:54:42 2010
Raid Level : raid1
Used Dev Size : 1959872 (1914.26 MiB 2006.91 MB)
Array Size : 1959872 (1914.26 MiB 2006.91 MB)
Raid Devices : 2
Total Devices : 1
Preferred Minor : 0

Update Time : Sat Apr 18 12:52:12 2015
State : clean
Active Devices : 1
Working Devices : 1
Failed Devices : 1
Spare Devices : 0
Checksum : 3e885ad7 - correct
Events : 481246

Number Major Minor RaidDevice State
this 0 8 1 0 active sync /dev/sda1

0 0 8 1 0 active sync /dev/sda1
1 1 0 0 1 faulty removed

A word of caution. In my case rebooting the machine now leads to a situation where Ubuntu discovered a raid file system and asks you if you want to mount it. I chose not to do this to stay on the save side. After this question you may end up in a bootloader, to be more specific in initramfs, here you should type “exit” and if asked to manually mount the drive you should not do it. Thereafter you boot normally into Ubuntu.

I booted up in this constellation a few times and once I discovered that the drives were mounted, shown in Nautilus and usable! That is all the below would not be necessary if this would work all the time. However I do not know how to reproduce this.

 My way to success

My procedure in short is:

  1. Get the WD hard drive out of it’s case and plug it into the PC
  2. Get a second hard drive to store the recovered data from the WD drive
  3. Generate a copy of the WD data partition to the other hard drive
  4. Bring up that image as a device
  5. Start the device with mdadm as a raid device
  6. Mount the raid device as a normal drive

Generate a copy

First I generated a copy of the sdb4 drive with the dd command. This took some time, in my case 24 hours. The recovery drive is the sdc drive and the sdc1 partition on it is big enough to contain the image.

$ sudo dd if=/dev/sdb4 of=/media/sdc1/sdb4.img bs=4096 conv=sync,noerror
1055197+0 Datensätze ein
1055196+0 Datensätze aus
4322082816 Bytes (4,3 GB) kopiert, 50,5156 s, 85,6 MB/s
1236669+0 Datensätze ein
1236668+0 Datensätze aus
5065392128 Bytes (5,1 GB) kopiert, 59,0936 s, 85,7 MB/s
...

Bind in the image as a device

With the losetup command it is possible to bind the image as a device. On my machine it is /dev/loop0. See [2].

$ sudo losetup -d /dev/loop0
$ sudo losetup /dev/loop0 /media/sdc1/sdb4.img

The command losetup -d is used to unbind any possible previous use of the loop0 device. Usually unnecessary, here I do it just to be sure.

Start the raid

$ sudo mdadm --assemble /dev/md4 /dev/loop0

mdadm: /dev/md4 has been started with 1 drive (out of 2).

Mount the raid

$ sudo mount /dev/md4 /media/raid_img

Useful links in English

  1. http://community.wd.com/t5/WD-ShareSpace/HOWTO-Recover-files-from-a-RAID-1-mirrored-drive-when-the/td-p/138448
  2. http://wiki.osdev.org/Loopback_Device
  3. http://unix.stackexchange.com/questions/72279/how-do-i-recover-files-from-a-single-degraded-mdadm-raid1-drive-not-enough-to
  4. http://mybookworld.wikidot.com/forum/t-90514/how-to-recover-data-from-wd-my-book-world-edition-nas-device
  5. https://www.linuxquestions.org/questions/linux-server-73/mdadm-assemble-raid5-with-loopback-mounted-disk-images-715343/
  6. http://unix.stackexchange.com/questions/72279/how-do-i-recover-files-from-a-single-degraded-mdadm-raid1-drive-not-enough-to

Useful links in German

  1. http://www.florian-fritsch.com/mdadm-raid-nach-ausfall-wiederherstellen/
  2. http://www.synology-wiki.de/index.php/Datenrettung_von_Raid-Systemen_unter_Linux
  3. http://www.zeroathome.de/wordpress/platte-platt-datenrettung-mit-ddrescue-und-grml/