Sie sind nicht angemeldet.

Anzeigen

**Wir werden in den kommenden Tagen einen Umzug auf einen neuen Server durchführen. Im Rahmen dieser Maßnahme wird das Forum ca. 1 Stunde nicht erreichbar sein.** nslu2-info.de ist ein privates Projekt von mir, welches jeden Monat aus eigener Tasche finanziert wird. Mit einer freiwilligen Spende wird der Erhalt und der weitere Ausbau dieses Forums unterstützt. Um mich beim Erhalt des Forums zu unterstützen, kannst Du entweder via Flattr oder Paypal spenden. Ich bedanke mich schon jetzt bei allen Unterstützern.

Lieber Besucher, herzlich willkommen bei: Die NSLU2 Community****wenns ums speichern und streamen geht****. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Freitag, 16. November 2007, 23:54

Umzug von 1GB auf 2GB Stick -> Partitonsgröße ändern

Hallo erstmal.

Ich möchte meine Debian-Installation von einem 1GB Stick auf einen 2GB-Stick umziehen und dabei gleichzeitig die Größe meiner Partition sda1 vergrößern.

Meine derzeitige Partitionierung sieht so aus:

Quellcode

1
2
3
4
5
6
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             549M  471M   50M  91% /
tmpfs                  15M     0   15M   0% /lib/init/rw
udev                   10M   40K   10M   1% /dev
tmpfs                  15M     0   15M   0% /dev/shm
/dev/sda6             304M   11M  279M   4% /home
Zum "Umziehen" habe ich mir folgendes überlegt:
  • Sichern des 1GB-Sticks auf anderem PC mit

    Quellcode

    1
    
    dd if=/dev/sda | gzip -c > backup.img.gz

  • Wiederherstellen auf den 2GB-Stick mit

    Quellcode

    1
    
    gzip -dc backup.img.gz | dd of=/dev/sda
Meine Fragen:
Ist mein Vorgehen sinnvoll? Wie kann ich auf dem neuen Stick die Größe von sda1 verändern (parted, ...).

Die Suche schon benuzt?: ja

Anzeigen

2

Samstag, 17. November 2007, 01:02

Hi,

also umziehen von 1GB auf 2GB sollte mit dd funktionieren. Leider wird es aber Probleme mit dem Vergrößern von sda1 geben. Ich habe schonmal ein kleines HowTo zum Upgraden auf ne größere Platte geschrieben ( http://wiki.nslu2-info.de/pmwiki.php/How…tplattenUpgrade ).
Leider klappt der Trick mit dem Partition löschen und vergrößert wieder anlegen nur mit der letzten Partition, da man sonst beim Vergrößern einer anderen Partition die dahinterliegende überschreibt (was immer schlecht ist...)

Parted habe ich mir bisher noch nicht näher angeschaut, aber ich denke, dass es damit funktionieren könnte. Und falls nicht, hast du ja immer noch die Backup-Datei :)

Gruss,
EvilDevil

Anzeigen

3

Sonntag, 18. November 2007, 02:19

Hi Evil,

das mit dem löschen-wiederherstellen-Trick hatte ich mir auch schon überlegt. Dürfte wohl sonst den Rest der Erweiterten Partiton killen.

Zu parted: Habe mich mit qtparted, gparted und parted beschäftigt. Kurz gesagt: Zuverlässig funktionieren tut nur parted, bei den GUIs sollte man lieber nur immer einen Step wagen und dann die Änderungen bestätigen. Klappt aber gerne mal nicht. Dabei hat sich herausgestellt, dass resizen von ext2/ext3 (derzeit) nicht unterstützt wird.

Daher Plan B. Nachfolgend eine Beschreibung, wie es für mich funktioniert hat:

Folgende Schritte müssen an einem anderen PC erfolgen, außer es steht etwas anderes in der Beschreibung:
  1. Sichern des alten Sticks als Image mit

    Quellcode

    1
    
    dd if=/dev/sda | gzip -c > backup.img.gz
    So kann man später immer wieder zurückspielen, falls man sich irgendwo vertut mit:

    Quellcode

    1
    
    gzip -dc backup.img.gz | dd of=/dev/sda

  2. Auf dem neuen Stick die Partionen anlegen. Ich habe cfdisk benutzt. Für mein Partitions-Layout habe ich sda1 auf 1500 MB erweitert. Mein neues Layout sieht so aus:

    Quellcode

    1
    2
    3
    4
    5
    
     Name        Flags      Part Type  FS Type          [Label]        Size (MB)
     ------------------------------------------------------------------------------
        sda1        Boot        Primary   Linux ext3       [root]           1497.01
        sda5                    Logical   Linux swap / Solaris               131.61
        sda6                    Logical   Linux ext3                         394.82
    Die erweiterte Partion enthält die SWAP-Partition (sda5) und wird das home-Verzeichnis (sda6) enthalten.
    Hinweis: Eine erweiterte Partition wird mit cfdisk automatisch erstellt, sobald man sie mit NEW->Logical anlegt.
  3. Partionen sda1 und sda6 mit ext3 und formatieren und sda5 als swap bereitstellen (auf dem neuen Stick!):

    Quellcode

    1
    2
    3
    
    mkfs.ext3 /dev/sda1
    mkfs.ext3 /dev/sda6
    mkswap /dev/sda5

  4. Kopieren vorbereiten - Mountpoints erstellen:
    Da die Daten von Partition sdx1 und sdx6 kopiert werden sollen, Verzeichnisse für (einfach nachvollziehbare) Mountpoints erstellen:

    Quellcode

    1
    2
    3
    4
    
    mkdir /mnt/sdx1_alt
    mkdir /mnt/sdx6_alt
    mkdir /mnt/sdx1_neu
    mkdir /mnt/sdx6_neu

  5. Kopieren vorbereiten - mounten:
    Bei mir ist
    • sda = neuer Stick
    • sdb = alter Stick
    Also:

    Quellcode

    1
    2
    3
    4
    
    mount /dev/sda1 /mnt/sdx1_neu
    mount /dev/sda6 /mnt/sdx6_neu
    mount /dev/sdb1 /mnt/sdx1_alt
    mount /dev/sdb6 /mnt/sdx6_alt

  6. Daten kopieren ohne MTIME, ATIME, Rechte oder sonstwas anzufassen.
    Dazu zuerst in alte Partition wechseln und kopieren:

    Quellcode

    1
    2
    
    cd /mnt/sdx1_alt
    find . -xdev | cpio -padm /mnt/sdx1_neu
    Kaffee trinken gehen...., dann:

    Quellcode

    1
    2
    
    cd /mnt/sdx6_alt
    find . -xdev | cpio -padm /mnt/sdx6_neu
    Evtl. noch nen Kaffee trinken, je nach Inhalt der Partition :)
  7. MBR des alten Sticks ohne Partitionstabelle kopieren. Dazu zuerst alles wieder unmounten:

    Quellcode

    1
    2
    3
    4
    
    umount unmount /mnt/sdx1_neu
    unmount /mnt/sdx6_neu
    unmount /mnt/sdx1_alt
    unmount /mnt/sdx6_alt
    Dann kopieren mit:

    Quellcode

    1
    
    dd if=/dev/sdb of=/dev/sda [B]bs=446[/B] count=1

  8. Boot Record von sda1 des alten Sticks auf sdb1 des neuen Sticks kopieren:

    Quellcode

    1
    
    dd if=/dev/sdb1 of=/dev/sda1 bs=512 count=1

  9. Fertig
    sieht bei mir nun so aus:

    Quellcode

    1
    2
    3
    4
    5
    6
    7
    
    df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda1             1.4G  489M  845M  37% /
    tmpfs                  15M     0   15M   0% /lib/init/rw
    udev                   10M   40K   10M   1% /dev
    tmpfs                  15M     0   15M   0% /dev/shm
    /dev/sda6             365M   11M  336M   3% /home
    Also schön viel Platz auf /dev/sda1
    -----------------------------------------
  10. Sonderfall UUID in fstab:
    Wenn ihr sowas gemacht habt wie ich und in der fstab per UUID mounted gehts nun noch lustig weiter...
  11. NSLU mit altem Stick booten, fstab wieder auf Devices (also /dev/sda1, etc.) umstellen.
  12. Ramdisk neu erstellen mit

    Quellcode

    1
    
    update-initramfs -u

  13. Ramdisk flashen mit

    Quellcode

    1
    
    flash-kernel

  14. NSLU runterfahren, neuen Stick rein
    Neuen Stick wiedermounten, UUIDs raussuchen z.B. mit

    Quellcode

    1
    
    l -ls /dev/disk/by-uuid
    fstab editieren und UUIDs anpassen, sieht bei mir nun so aus:

    Quellcode

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    proc                                            /proc                   proc
    # sda1
    UUID=c6f88875-e7eb-49b5-ad81-9eac71404a25       /                       ext3
    # sda6
    UUID=d0e85bda-f08a-42dd-b231-20a6447b21c9       /home                   ext3
    # sda5
    UUID=1a2c98dc-82ca-4fc8-b8e1-4cd0b5e2accb       none                    swap
    # sda1
    UUID=c6f88875-e7eb-49b5-ad81-9eac71404a25       /media/usb0             auto
    # sda5
    UUID=1a2c98dc-82ca-4fc8-b8e1-4cd0b5e2accb       /media/usb1             auto
    # sda6
    UUID=d0e85bda-f08a-42dd-b231-20a6447b21c9       /media/usb2             auto

  15. Ramdisk neu erstellen mit

    Quellcode

    1
    
    update-initramfs -u

  16. Ramdisk flashen mit

    Quellcode

    1
    
    flash-kernel

    Hinweis: Sollte man hier bei den UUIDs Mist gebaut haben, kann man jederzeit als Rettungsanker das Image von http://cyrius.com/debian/nslu2/upgrade.html neu einspielen.
  17. Hat auch das alles geklappt, hat man nach einem Reboot schön viel neuen Platz und kann sich nen Keks freuen :D
Viel Erfolg, falls das mal jemand nachmachen möchte. Man sollte ruhigen Gewissens einen Abend dafür einplanen.

Quellen:Gruß
BoehserWolf

4

Sonntag, 18. November 2007, 21:28

Prima! :) :)

Sehr schöne Anleitung!
Ist nur noch ein kleiner Fehler drin:

Schritt 7:

Quellcode

1
umount [COLOR=Red]unmount[/COLOR] /mnt/sdx1_neu
Ansonsten: ab ins Wikidamit! :cool:
Gruss,
EvilDevil

Social Bookmarks