openSUSE 12.1 Partitonen ändern?

Hallo Zusammen,

bei mir hat sich heraus gestellt, das die /home-Partition mehr als ausreichend groß ist, dafür aber die /root-Partition an ihre Kapazitätsgrenzen kommt.

Nun habe ich es mit dem YaST2-Partitionierer zumindest schon mal geschafft die /home-Partition um reichlich 4 GB zu verkleinern. Bei dem Versuch die /root-Partition zu erweitern scheitere ich aber.

Derzeit sieht das Ganze so aus:

/dev/disk/by-id/ata-WDC_WD5000BEKT-60KA9T0_WD-WX31A31X4844-part5 swap swap defaults 0 0
/dev/disk/by-id/ata-WDC_WD5000BEKT-60KA9T0_WD-WX31A31X4844-part6 / ext4 acl,user_xattr 1 1
/dev/disk/by-id/ata-WDC_WD5000BEKT-60KA9T0_WD-WX31A31X4844-part7 /home ext4 acl,user_xattr 1 2
/dev/disk/by-id/ata-WDC_WD5000BEKT-60KA9T0_WD-WX31A31X4844-part1 /windows/C ntfs-3g users,gid=users,fmask=133,dmask=022,locale=de_DE.UTF-8 0 0
/dev/disk/by-id/ata-WDC_WD5000BEKT-60KA9T0_WD-WX31A31X4844-part2 /windows/D ntfs-3g users,gid=users,fmask=133,dmask=022,locale=de_DE.UTF-8 0 0

nun kann ich zwar noch eine 4 GB große sda8 einrichten, ich kann aber die sda6 nicht vergrößern und auch die sda7 nicht verschieben (um dann eventuell die sda6 vergrößern zu können)

Was ist zu tun um die /root-Partiton um die freien 4 GB zu vergrößern?

Danke im Voraus
Woody

Hi,

weil Du die Partition im laufenden Betrieb nicht aushängen kannst, müsstest Du wahrscheinlich das Rettungssystem booten oder Knoppix mit qparted.

Gruß,
Felix

Hallo,

das wird nicht so einfach, da Du hier mit “statischen” Partitionen ohne Volume Manager arbeitest.

Um Partition 6 vergrößern zu können, muss Partition 7 weiter nach “hinten” auf der Platte verschoben werden, also der Start-Zylinder mittels fdisk tool geändert werden.
Das filesystem auf /home zu verkleinern reicht in dem Falle nicht, da Du damit nicht weißt, wo der Platz nun “frei” gemacht wurde, d. h. es können immernoch Daten sowohl am Anfang der Partition 7 wie auch am Ende liegen.

Soweit erstmal zum Verständnis.

Ich würde nun folgendermaßen vorgehen, wenn Du eine Neuinstallation (Nutzerdaten sichern und danach wieder einspielen) ausschließt.
Die Partition 7 muss gelöscht und neu angelegt werden, also erstellst Du einen Komplettabzug mittels “tar” davon und spielst ihn dann wieder ein.
Ich gehe mal davon aus, dass Deine Windows-Partition “D” genug Platz dafür bietet (mehr Platz frei als /home belegt), ansonsten entsprechend anpassen.

  1. Live-System booten (z. B. grml linux)
  2. Partitionen nach /mnt mounten
mkdir /mnt/home
mount /dev/disk/by-id/ata-WDC_WD5000BEKT-60KA9T0_WD-WX31A31X4844-part7 /mnt/home
mkdir /mnt/d
mount /dev/disk/by-id/ata-WDC_WD5000BEKT-60KA9T0_WD-WX31A31X4844-part2 /mnt/d
  1. tar Abzug erstellen, Partitionstabelle sichern
cd /mnt/home
tar cvf /mnt/d/home.tar . 
sfdisk -d /dev/disk/by-id/ata-WDC_WD5000BEKT-60KA9T0_WD-WX31A31X4844 > /mnt/d/part.tab
  1. alles umounten
cd /
umount /mnt/*
  1. Partitionierung ändern
fdisk /dev/disk/by-id/ata-WDC_WD5000BEKT-60KA9T0_WD-WX31A31X4844
# Startsektor der Partition 6 und Endsektor der Partition 7 anzeigen
p
# Partitionen 6 & 7 löschen, dabei gehen keine Daten der Partition 6 verloren!
 d
6
d
7
# Partition 6 mit GLEICHEM Startsektor und neuer Zielgröße neu anlegen
Command (m for help): n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
Adding logical partition 6
First sector (...): <STARTSEKTOR Part6>
Last sector, +sectors or +size{K,M,G} (149506-488397167, default 488397167): +40G # Größe mittels '+' angeben
# Partition 7 mit GLEICHEM Endsektor neu anlegen
Command (m for help): n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
Adding logical partition 7
First sector (...): # Hier einfach ENTER drücken, er nimmt den nächsten freien Sektor nach Partition 6
Using default value ...
Last sector, +sectors or +size{K,M,G} (84037634-488397167, default 488397167): <ENDSEKTOR Part7>
# nochmal gucken
p
# Änderungen auf Platte schreiben
w
  1. root-FS vergrößern, /home neu erstellen und zurückspielen
partprobe
resize2fs /dev/disk/by-id/ata-WDC_WD5000BEKT-60KA9T0_WD-WX31A31X4844-part6
mount /dev/disk/by-id/ata-WDC_WD5000BEKT-60KA9T0_WD-WX31A31X4844-part6 /mnt
df -h # root ist nun größer
mkfs.ext4 /dev/disk/by-id/ata-WDC_WD5000BEKT-60KA9T0_WD-WX31A31X4844-part7
mount $_ /mnt/home
mount /dev/disk/by-id/ata-WDC_WD5000BEKT-60KA9T0_WD-WX31A31X4844-part2 /mnt/windows/D
cd /mnt/home
tar xvf /mnt/windows/D/home.tar
cd
umount /mnt/windows/D
umount /mnt/home
umount /mnt
  1. reboot

Wenn etwas schief geht hast Du die Sicherung Deiner Nutzerdaten und Partitionstabelle auf dem NTFS Laufwerk.
Um die Partitionierung für eine dann notwendige Neuinstallation wiederherzustellen, kannst Du das wieder im live-System mit ‘sfdisk’ machen:

cat part.tab | sfdisk /dev/disk/by-id/ata-WDC_WD5000BEKT-60KA9T0_WD-WX31A31X4844

Alternativ kannst du auch über den Einsatz von LVM nachdenken, man müsste dann entsprechend auch noch root sichern und migrieren & grub anpassen, ich glaube, da fällt eine Neuinstallation einfacher aus :wink:

Hallo,

danke für die ausführliche Antwort, aber das ist mir ehrlich gesagt zu kompliziert! So fit bin ich mit Linux dann doch nicht, das ich mir dies zutraue. :\

Ich setzte dann doch auf die Variante die Partitionierung beim nächsten Installieren anders zu setzen, bis dahin habe ich mir mit Löschen einiger Pakete und anderem “Datenmüll” beholfen. (Ist ja gigantisch was die ganzen Sprachpakete und Anleitungen der witzigsten Sprachen so für Speicherplatz brauchen)

Grüße
Woody