Upgrade naar Karmic Koala breekt squashfs
Dit weekend heb ik mijn Crunchbang-installatie op de netbook bijgewerkt naar Karmic Koala. De upgrade zelf ging vlotjes. Ik heb er niet heel de tijd op zitten kijken.
Enkele fragmentjes uit het upgradeproces:
12 pakketten zullen verwijderd worden. 142 nieuwe pakketten zullen geïnstalleerd worden. 741 pakketten zullen een upgrade krijgen.
U moet in totaal 436M downloaden. Deze download duurt met uw verbinding ongeveer 9 minuten.
Het upgraden kan enkele uren in beslag nemen en kan tussentijds niet worden afgebroken.
real 430m39.408s user 16m4.808s sys 8m3.086s
Helaas, na het rebooten bleek dat ik met een onbruikbaar systeem zit.
General error mounting filesystems. A maintenance shell will now be started. CONTROL-D will terminate this shell and re-try.
OK, regel 1: DON'T PANIC. Control+D heeft geen enkele zin, want er wordt naar een root wachtwoord gevraagd en zoals we allemaal weten, heeft Ubuntu geen root wachtwoord.
Stap 2: rebooten, op Escape drukken in het Grub-menu, en 'e' om te bewerken. De regel met de kernel vul ik aan zodat er een init bij staat:
kernel /boot/vmlinuz-2.6.31-14-generic root=LABEL=/ rw init=/bin/bash
bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell bash: groups: command not found root@(none):/#
Ik weet al dat er een probleem is met het mounten van een filesystem, maar welk? Het handmatig proberen mounten van alle filesystems gaf meteen het antwoord:
root@(none):/# mount -a
mount: special device LABEL=/home does not exist
[ 282.714817] squashfs: version 4.0 (2009/01/31) Philip Lougher
[ 282.720623] SQUASHFS error: Major/Minor mismatch, older Squashfs 3.1 filesystems are unsupported
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
mount: unknown filesystem type 'unionfs'root@(none):/ dmesg [ 282.714817] squashfs: version 4.0 (2009/01/31) Philip Lougher [ 282.720623] SQUASHFS error: Major/Minor mismatch, older Squashfs 3.1 filesystems are unsupported
Er zit nu niets anders op dan het gesquashte filesystem te unsquashen met de oude versie, en eventueel daarna opnieuw te squashen met de nieuwe versie. Maar hoe? Ik zit met een gebroken systeem.
Gelukkig komt daar weer mijn trouwe usb-stick de redding brengen. Daar stond nog altijd Crunchbang op, van toen ik het geïnstalleerd heb. Maar in principe kan om het even welke andere 9.04 Ubuntu ISO gedownload worden. Die moet dan op de usb-stick gezet worden met unetbootin.
Wanneer Ubuntu 9.04 geboot is vanaf de usb-stick, geef ik volgende commando's:
sudo -i aptitude install squashfs-tools modprobe squashfs modprobe unionfs mount /dev/sda1 /mnt mkdir /mnt/usr.old mount -t squashfs -o ro,loop,nodev /mnt/.filesystems/usr/usr.sqfs /mnt/usr.old mount -t unionfs -o nodev,noatime,dirs=/mnt/.filesystems/usr/overlay=rw:/mnt/usr.old=ro unionfs /mnt/usr.old time rsync -av /mnt/usr.old/ /mnt/usr
sent 1466696143 bytes received 1438136 bytes 1256426.43 bytes/sec total size is 1461396353 speedup is 1.00 rsync warning: some files vanished before they could be transferred (code 24) at main.c(1058) [sender=3.0.5] real 19m28.192s user 0m51.755s sys 2m10.544s
sending incremental file list file has vanished: "/mnt/usr.old/lib/graphviz/config4" sent 2434876 bytes received 9508 bytes 212555.13 bytes/sec total size is 1461396353 speedup is 597.86 rsync warning: some files vanished before they could be transferred (code 24) at main.c(1058) [sender=3.0.5] real 0m10.500s user 0m2.820s sys 0m9.461s
graphviz. Niets dat een herinstallatie van het pakket niet kan oplossen.
In /mnt/etc/fstab moeten ook nog (tijdelijk) 2 regels in commentaar gezet worden:
#/.filesystems/usr/usr.sqfs /usr squashfs ro,loop,nodev 0 0 #unionfs /usr unionfs nodev,noatime,dirs=/.filesystems/usr/overlay=rw:/usr=ro 0 0
Nu is het tijd voor een reboot. Werkt het nu? Neen... *gil*
Ok, opnieuw: DON'T PANIC. Wat is het probleem?
One or more of the mounts listed in /etc/fstab cannot yet be mounted: (ESC for recovery shell) /: waiting for /dev/disk/by-label/\134x2f /home: waiting for /dev/disk/by-label/\x2fhome
sudo e2label /dev/sda1 root sudo e2label /dev/mmcblk0 home
/etc/fstab moet ook nog overeenkomstig aangepast worden. Let op: de /etc/fstab op /dev/sda1, dus eerst mounten op /mnt en dan /mnt/etc/fstab aanpassen. De nieuwe versie van /etc/fstab is nu:
# <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults LABEL=root / ext4 noatime,errors=remount-ro 1 LABEL=home /home ext4 noatime 2 LABEL=swap none swap sw tmpfs /tmp tmpfs defaults tmpfs /var/tmp tmpfs defaults tmpfs /var/cache/apt/archives tmpfs defaults # /.filesystems/usr/usr.sqfs /usr squashfs ro,loop,nodev # unionfs /usr unionfs nodev,noatime,dirs=/.filesystems/usr/overlay=rw:/usr=ro
/boot/grub/menu.lst moet nog aangepast worden dat het root device nu niet / maar root heet. This is left as an excercise to the reader...

Ik ben blij dat het bij mij
Ik ben blij dat het bij mij allemaal zonder problemen ging, die upgrade.. Ik werk nog niet zo lang op ubuntu/linux in het algemeen, en zou dus begot niet weten wat te doen.. Het enige gezever dat ik heb is een error als ik 9.10 met de laatste kernelversie selecteer in Grub2, maar vervolgens boot hij toch gewoon..
Zeer interessante post.
Hmmm ja Grub2 da's nog
Hmmm ja Grub2 da's nog zoiets, ik heb natuurlijk nog altijd de oude grub. Allé hop ik heb weer materiaal voor een volgende blogpost
Grub2 staat er nu op. Geen
Grub2 staat er nu op.
Geen enkel probleem, gewoon grub-pc installeren.
Nieuwe reactie inzenden