Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: wubi-move-to-partition script  (gelezen 2197 keer)

Offline testcees

  • Documentatieteam
    • testcees
    • www.testcees.nl
wubi-move-to-partition script
« Gepost op: 2009/10/20, 21:54:08 »
Op 2/3 van de Wubi Guide (https://wiki.ubuntu.com/WubiGuide) staat het script wubi-move-to-partition.

Dit script kan in 8.04 gebruikt worden om de wubi-installatie over te zetten op een (eigen, superveilige :P) ext3 partitie. Waarom niet in 9.10?

Na het uitvoeren van dit script is er geen UUID in bestand /etc/fstab. Het wubi-move-to-partition script gebruikt namelijk een opdracht die in Karmic niet meer aanwezig is: vol_id --uuid $dev

De opdracht vol_id --uuid geeft een UUID string van een bepaalde partitie $dev.

Het alternatief in Karmic is blkid. Maar met blkid krijg ik niet zonder meer de UUID string. Ik kom niet verder als blkid -s UUID $dev maar dat is geen formaat om in /etc/fstab te plaatsen. Een oplossing zou mooi toegevoegd kunnen worden aan de launchpadmelding #456549.
Klik links bovenin op Documentatie

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Re: wubi-move-to-partition script
« Reactie #1 Gepost op: 2009/10/21, 01:56:05 »
Een optie met blkid is de volgende:
blkid -s UUID -o value /dev/XYZ
Dat levert direct de UUID op:
johan@desktop:~/Desktop$ blkid -s UUID -o value /dev/sda1
ba6b4b7d-44ad-7a66-f2ea-5d6d2ce83bcc

Regel 92:
   echo "UUID=$(vol_id --uuid $dev)    /    ext3    errors=remount-ro    0    1" >> $target/etc/fstab

Kan je vervangen door:
   echo "UUID=$(blkid -s UUID -o value $dev)    /    ext3    errors=remount-ro    0    1" >> $target/etc/fstab


Regel 94 van het script is dit:
      echo "UUID=$(vol_id --uuid $swapdev)    none    swap    sw    0    0" >> $target/etc/fstab

En zou je kunnen vervangen door dit:
      echo "UUID=$(blkid -s UUID -o value $swapdev)    none    swap    sw    0    0" >> $target/etc/fstab

Maar dit zou je eerst moeten testen. Als het werkt kan het aangedragen worden als oplossing voor de bug :)

Edit: Op dezelfde manier moet regel 111 aangepast worden.
« Laatst bewerkt op: 2009/10/21, 02:05:22 door Johan van Dijk »

Offline testcees

  • Documentatieteam
    • testcees
    • www.testcees.nl
Re: wubi-move-to-partition script
« Reactie #2 Gepost op: 2009/10/21, 09:58:01 »
Maar dit zou je eerst moeten testen. Als het werkt kan het aangedragen worden als oplossing voor de bug :)

Edit: Op dezelfde manier moet regel 111 aangepast worden.
Getest! En zowel op 8.04 LTS, 8.10, 9.04 en 9.10 geeft dit de UUID in het correcte formaat. Ik zie dat je het al aan de bugmelding hebt toegevoegd. Prima! :)

Wat betreft regel 111 is er nog een ander probleem. Ubuntu Karmic 9.10 maakt gebruik van Grub2 (dus ook bij een Wubi installatie). Na het verplaatsen door het script is het de bedoeling dat de Windows bootloader in mbr overschreven wordt door grub. De huidige edit_grub routine geeft: grub not found.

edit_grub(){
    echo "Editing grub..."   
    sed -i "s:# groot=.*::" $target/boot/grub/menu.lst
    sed -i "s:kopt=.* ro:kopt=root=UUID=$(blkid -s UUID -o value $dev) ro:" $target/boot/grub/menu.lst
    cp /usr/lib/grub/*/*stage* $target/boot/grub/   
    target_cmd update-grub
    disk=${dev%%[0-9]*}
    partn=${dev#$disk}
    disk=${disk##*/}
    gdisk=$(grep -w $disk /boot/grub/device.map|cut -d ')' -f 1)
    gdisk=${gdisk#\(}
    gpartn=$(expr $partn - 1)
    [ -z "$gdisk" ] && gdisk=hd0
    [ -z "$gpartn" ] && gpartn=0   
    echo "
    root ($gdisk,$gpartn)
    setup ($gdisk)
    setup (hd0)
    quit" | grub --batch --device-map=/boot/grub/device.map
}

Deze routine is zo correct voor grub1, zou er een kopie (edit_grub2) gemaakt kunnen worden? Dan blijft het 1 script voor alle versies.
In edit_grub2 zal een 'grub-install' gemaakt en uitgevoerd moeten worden?

Achteraf was dit op te lossen door grub2 te herstellen zoals hier beschreven: http://wiki.ubuntu-nl.org/community/GrubHerstel.
Klik links bovenin op Documentatie