Wie man die Größe von ext3 Partitionen anpasst ohne Daten zu verlieren

Nun gibt uns fdisk den höchstmöglichen Zylinder unserer neuen Partition an (1247 in diesem Beispiel), also geben wir einfach diese Nummer ein:

Last cylinder or +size or +sizeM or +sizeK (1-1247, default 1247): 1247

Lass uns jetzt unsere neue Partitionstabelle anzeigen:

Command (m for help): p

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 1 1247 10016496 83 Linux
/dev/sda2 1248 1305 465885 5 Extended
/dev/sda5 1248 1305 465853+ 82 Linux swap / Solaris

Unsere ursprüngliche /dev/sda1 hatte die Boot Flag (siehe fdisk -l Ausgabe vom Anfang dieses Kapitels), also müssen wir es wieder unserer neuen /dev/sda1 hinzufügen:

Command (m for help): a
Partition number (1-5): 1

Lass uns nun unsere neue Partitionstabelle schreiben und fdisk beenden:

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

Nun starten wir das System neu und starten wieder in unser Knoppix System (Rettungssystem; originales System, wenn die geänderte Partition keine System-Dateien enthält):

shutdown -r now

Werde wieder Root-Benutzer (führe auf Knoppix dies aus

su

)

Führe dann Folgendes aus

e2fsck -f /dev/sda1

Nun müssen wir die Größe des Dateisystems in unserer /dev/sda1 Partition ändern. Wenn wir für den resize2fs Befehl keine Größe festlegen, geht es von der größtmöglichen Zahl aus, also müssen wir nicht rechnen. Wir führen also Folgendes aus

resize2fs /dev/sda1

Die Ausgabe sieht wie folgt aus:

resize2fs 1.38 (30-Jun-2005)
Resizing the filesystem on /dev/sda1 to 2504124 (4k) blocks.
The filesystem on /dev/sda1 is now 2504124 blocks long.

Als Nächstes führen wir dies aus

fsck -n /dev/sda1

fsck 1.38 (30-Jun-2005)
e2fsck 1.38 (30-Jun-2005)
/dev/sda1: clean, 159036/1254176 files, 1062544/2504124 blocks

und erstellen das Journal auf /dev/sda1, auf diese Weise wandeln wir sie wieder in eine ext3 Partition um:

tune2fs -j /dev/sda1

tune2fs 1.38 (30-Jun-2005)
Creating journal inode: done
This filesystem will be automatically checked every 30 mounts or
0 days, whichever comes first. Use tune2fs -c or -i to override.

Nun sind wir fertig. Fahre das System runter und starte ins originale System:

shutdown -r now

Wenn alles klappt, wird das originale System starten und keine Daten sind verloren gegangen. Nun können wir einige Angaben über unsere neue Partition zusammentragen und sie mit den Informationen, die wir zu Anfang dieses Kapitels abgerufen haben, vergleichen:

df

Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 9859036 4224032 5234348 45% /
varrun 95480 132 95348 1% /var/run
varlock 95480 0 95480 0% /var/lock
udev 10240 52 10188 1% /dev
devshm 95480 0 95480 0% /dev/shm
lrm 95480 17580 77900 19% /lib/modules/2.6.17-10-generic/volatile

df -B 4k

Filesystem 4K-blocks Used Available Use% Mounted on
/dev/sda1 2464759 1056008 1308587 45% /
varrun 23870 33 23837 1% /var/run
varlock 23870 0 23870 0% /var/lock
udev 2560 13 2547 1% /dev
devshm 23870 0 23870 0% /dev/shm
lrm 23870 4395 19475 19% /lib/modules/2.6.17-10-generic/volatile

df -h

Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9.5G 4.1G 5.0G 45% /
varrun 94M 132K 94M 1% /var/run
varlock 94M 0 94M 0% /var/lock
udev 10M 52K 10M 1% /dev
devshm 94M 0 94M 0% /dev/shm
lrm 94M 18M 77M 19% /lib/modules/2.6.17-10-generic/volatile

fdisk -l

Disk /dev/sda: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 1247 10016496 83 Linux
/dev/sda2 1248 1305 465885 5 Extended
/dev/sda5 1248 1305 465853+ 82 Linux swap / Solaris

fdisk -s /dev/sda1

10016496

4 Zwei ext3 Partitionen vereinen

In diesem Beispiel habe ich wieder meine System-Partition /dev/sda1 (ungefähr 6GB groß), die auf der Festplatte direkt gefolgt wird von der Partition /dev/sda3 (ungefähr 4GB groß). /dev/sda3 ist im /data Verzeichnis eingehängt und enthält keine Dateien, die vom Linux System benötigt werden, nur Benutzer-Daten. Die derzeitige Partitionierung sieht wie folgt aus:

df -h

Filesystem Size Used Avail Use% Mounted on
/dev/sda1 5.8G 4.1G 1.6G 73% /
varrun 94M 132K 94M 1% /var/run
varlock 94M 0 94M 0% /var/lock
udev 10M 56K 10M 1% /dev
devshm 94M 0 94M 0% /dev/shm
lrm 94M 18M 77M 19% /lib/modules/2.6.17-10-generic/volatile
/dev/sda3 3.5G 72M 3.3G 3% /data

Um /dev/sda1 und /dev/sda3 zu vereinen, müssen wir /dev/sda3 löschen und dann  /dev/sda1 vergrößern, was in Kapitel 3 beschrieben wurde. Das bedeutet, dass alle Daten auf /dev/sda3 verloren gehen, wenn Du sie also später noch einmal benötigst, dann sichere sie irgendwo anders und stelle sie dann auf der neuen und größeren  /dev/sda1 wieder her!

Nun öffnen wir /etc/fstab und entfernen die Zeile für  /dev/sda3 wenn sie da existiert:

vi /etc/fstab

Die neue Datei ohne  /dev/sda3 könnte wie folgt aussehen:

# /etc/fstab: static file system information.
#
#              

proc            /proc           proc    defaults        0       0
# /dev/sda1
UUID=566fd9e9-098f-4aae-9908-51efe171d8ba /               ext3    defaults,errors=remount-ro 0       1
# /dev/sda5
UUID=82102b65-35db-469a-9532-03d619d8cffb none            swap    sw              0       0
/dev/hdc        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/           /media/floppy0  auto    rw,user,noauto  0       0

Dann hängen wir /dev/sda3 aus und führen fdisk aus um es zu löschen. Das kann immer noch auf dem ursprünglichen System getan werden, da /dev/sda3 keine System-Dateien beinhaltet:

umount /dev/sda3

fdisk /dev/sda

(Ja, es ist /dev/sda, nicht /dev/sda1.)

The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Tippe m um eine Liste aller Befehle anzeigen zu lassen:

Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition’s system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Lass uns nun /dev/sda3 löschen:

Command (m for help): d
Partition number (1-5): 3

Danach schreiben wir die neue Partitionstabelle auf die Festplatte:

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

Nun fahren wir das System runter:

shutdown -r now

und starten in unsere Knoppix Live-CD (oder das Rettungssystem). Von hier an sind die folgenden Schritte mit den Schritten von Kapitel 3 identisch, angefangen mit

su

umount /dev/sda1

sieh Dir also Kapitel 3 an.

5 Links

Das könnte dich auch interessieren …