/usr mit disklabel vergrößern

angelfreund

lernwillig
Hallo zusammen,
meine /usr-Partition ist nahezu voll und ich möchte diese vergrößern. Allerdings ist mir nicht klar, was disklabel da eigentlich macht. Was passiert mit den Daten auf der Partition wenn ich die Größe ändere? Ich habe bisher unter Linux derartiges problemlos per gparted gehandhabt. Da ist es so, dass bei einer Partitionsvergrößerung die nachfolgende oder voranstehende Partition natürlich ebenfalls geändert werden müssen. Ich hab hier im Forum und im Netz bereits etliches gelesen allerdings bin ich nicht so recht weitergekommen. Es scheint ja nicht gerade trivial zu sein ...
Code:
$ df
Filesystem  512-blocks      Used     Avail Capacity  Mounted on
/dev/wd1a       314480    146440    152316    49%    /
/dev/wd1g     41276556   1643700  37569032     4%    /home
/dev/wd1d      1007804        32    957384     0%    /tmp
/dev/wd1f      4136832   3830152     99840    97%    /usr
/dev/wd1e      2023484     30976   1891336     2%    /var
/dev/wd0k     34862736  25081904   8718136    74%    /mnt/wd0k_home
/dev/wd0p     19702616  18126840    975272    95%    /mnt/wd0p_local
Code:
# disklabel -c wd1f
# /dev/rwd1f:
type: ESDI
disk: ESDI/IDE disk
label: Maxtor 6L080P0  
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 9964
total sectors: 160086528
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0		# microseconds
track-to-track seek: 0	# microseconds
drivedata: 0 

16 partitions:
#                size           offset  fstype [fsize bsize  cpg]
  a:           321237               63  4.2BSD   2048 16384    1 
  b:           514080           321300    swap                   
  c:        160086528                0  unused      0     0      
  d:          1028160           835380  4.2BSD   2048 16384    1 
  e:          2056320          1863540  4.2BSD   2048 16384    1 
  f:          4209030          3919860  4.2BSD   2048 16384    1 
  g:         41945715          8128890  4.2BSD   2048 16384    1
Hat vielleicht jemand hier ähnliche Erfahrungen gemacht und kann mir hierzu einen Tipp geben? Das wär echt nett.
 
Eine Partition ist einfach nur zugeteilter Platz, wo ein Dateisystem angelegt werden kann. Es ist ein "Container" für Dateisysteme. Wenn Du den Container vergrößerst, dann hast Du nicht mehr Platz im Dateisystem. Dazu musst Du das Dateisystem darin auch vergrößern.

Während das erste (die Vergrößerung der Partition) relativ einfach ist, wenn man tatsächlich Platz hat (man darf im Label keine Überschneidungen machen[1] und man darf den Start der Partition nicht verschieben[2]), ist das Vergrößern des Dateisystems aufwändiger. Es gibt für manche Dateisysteme Tools, die das erledigen. Man kann aber auch ein dump und restore machen. Man hat ja sowieso das Backup (den Dump) schon vorliegen, wenn man verantwortungsvoll mit den Daten umgeht und solche gewagten Aktionen durchführt.

Wichtig!
Ich habe [1] und [2] markiert. Eine der beiden Voraussetzungen müsstest Du in Deinem Fall verletzen. Du kannst also nicht einfach die Angaben für /usr im Label modifizieren, sonst riskierst Du Datenverlust.

Grund ist: hinter /usr hast Du /var im Label angelegt. Wenn Du "size" bei User änderst, dann machst Du /var kaputt, weil es eine Überschneidung produziert.

Da Du das nicht so ganz verstehst (wenn ich das so mal sagen darf), rate ich Dir einen einfachen Weg zu suchen, wie eine Neuinstallation mit korrekter Partitionierung, die etwas länger für die nächste Zukunft hält. Sichere die kompletten Dateisysteme irgendwo (dump oder tar; dump bevorzugt) und fang mit der Platte noch einmal "from scratch" an.

Wenn Du mit einem Live-System und mit dump umgehen kannst und eine zweite Platte hast wo alles als Backup hinpassen würde, dann wird es einfacher. Dann kannst Du das System (so wie Du es hattest, ohne aufwändige Neukonfiguration) ganz sicher restarieren und dann den Bootblock neuschreiben. So würde ich das machen.

Aber wie gesagt... immer muss man verstehen was man tut! Ein Datenverlust tut richtig weh.
 
Hallo Nakal,

danke erstmal für die schnelle Antwort. Ich war der Meinung, durch Ändern von "size" per disklabel wird das fs automatisch an neuen Platz angepasst und die Daten dann wieder entsprechend "zurechtgeschoben". Ebenso bei der Verkleinerung von /var. Heißt das jetzt ich muss in jedem Fall /usr und /var kaputt machen? Eine Neuinstallation wäre für mich vorerst die letzte Wahl, da sonst alles super rund läuft und ich recht lang dran gebastelt habe.
(Zu schade, das das BSD fs von gparted nicht unterstützt wird.)
 
hi

hast eine BSD-Live-CD und ein USB-Stick, oder anstelle des Sticks auf einer 2ter Festplatte
noch eine genügend grosse freie Partition? So aus dem Stegreif;


Live-CD starten
deine Partitionen unter /mnt/hd mounten wie du sie normal einbinden lässt
dein Stick/Partition unter /mnt/stick mounten
Code:
(cd /mnt/hd && tar cf - .) | (cd /mnt/stick && tar xpf -)
in /mnt/hd alles unmounten
deine Festplatte umorganisieren,,,(Label/FS anlegen)
,,,(du -sh /mnt/stick/pfad jetzige grösse als Anhaltspunkt verwenden)
deine neuen Partitionen wieder unter /mnt/hd einbinden
Code:
(cd /mnt/stick && tar cf - .) | (cd /mnt/hd && tar xpf -)
fstab unter /mn/hd/etc an neues Schema anpassen, fertig.

(USBstick ist natürlich FS UFS)
(Je nach Labelorgie, noch kurz den MBR halt installieren lassen)
(dump/restore ist toll, benutz ich hier auch, aber ein restore auf eine grössere Partition, verschenkt Plattenplatz, zumindest ist das meine Theorie.)
(distfiles und packete löschen, bringt manchmal auch einige MB zusammen)

bye
 
Zurück
Oben