Problem mit zu kleiner root-Partition auf Server

tommy2014

Member
Hi Zusammen,

ich habe mal ein spezielles bzw. wahrscheinlich eher dummes Problem.

Ich habe beim mir auf dem root-Server standardmäßig nur 5 GB für openBSD5.3 bei 2 Festplatten mit je 1000GB. Ich wollte gerne die Partitionen ändern auf folgendes Schema:

Code:
partition a (root) 925GB
partition b (swap) 1,5GB
partition d (var) 5GB

Die Idee war, da ich ja die 2. Platte komplett frei habe, lege mir dort die gewünschten
Partitionen an und mounte und kopiere die Daten rüber, ändere die fstab, ändere
per Webinterface die Bootreihenfolge und fertig.

Aber irgendwie will openBSD nicht so wie ich... da ich leider nur einen remote-Zugriff
habe, sehe ich auch nichts (keine Fehlermeldung), ausser das er nicht bootet von der 2. HDD.

Code:
#fdisk -e sd1
edit 0
flag 0
quit
#disklabel -E sd1
a a
a b
a d
p m
q
#newfs sd1a
#newfs sd1b
#newfs sd1d
#mkdir /mnt/tmproot && mount /dev/sd1a /mnt/tmproot
#mkdir /mnt/tmpvar && mount /dev/sd1d /mnt/tmpvar
#cd / && rsync -avx * /mnt/tmproot
#rsync -avx /var/* /mnt/tmpvar
#vi /mnt/tmproot/etc/fstab 
"/dev/sd1a / ffs rw,softdep 1 1
/dev/sd1b none swap sw 0 0
/dev/sd1d /var ffs rw,softdep 1 1"
#umount /dev/sd1a && umount /dev/sd1d
#reboot

Soweit so gut, wenn ich jetzt roboote (nachdem ich die Bootreihenfolge im Webinterface des Servers) geändert habe, kommt auch nach 5min immernoch ein ping-timeout.

Nach dem Zurücksetzen auf "Standard-Boot" geht der Neustart ohne Probleme (aber halt die alte kleine Partition (5GB)).

Nachdem nun google schon mein bester Freund ist und mir doch nicht helfen konnte, habe ich echt keine Idee mehr, wo ich noch den Fehler suchen könnte. Vermutete ja wie immer etwas ganz Dummes.

Hat von Euch Jemand eine Idee oder auch einen besseren Lösungsansatz für das Problem ("resize root partition").

Danke.
 
Poste am besten nochmal den Output von "fdisk sd1" und "disklabel sd1", denn die wirklich interessanten Informationen sind oben nicht enthalten.

Ich würde an deiner Stelle erstmal die Platte mit "fdisk -i sd1" initialisieren und anschließend mit dem interaktiven disklabel-Editor weitermachen. Sieht auf den ersten Blick danach aus, als wäre die Partition nicht bootfähig. Zumal im fdisk-Manual steht, dass "flag 0" nicht das macht, was du denkst und vorhast. :-) Mit "fdisk -i" sparst du dir die Arbeit und kannst direkt zum disklabel übergehen.

Viel Erfolg.
 
Code:
# fdisk sd1
Disk: sd1       geometry: 121601/255/63 [1953525168 Sectors]
Offset: 0       Signature: 0xAA55
            Starting         Ending         LBA Info:
#: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
0: 00      0   0   0 -      0   0   0 [           0:           0 ] unused    
1: 00      0   0   0 -      0   0   0 [           0:           0 ] unused    
2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused    
*3: A6      0   1   2 - 121600 254  63 [          64:  1953520001 ] OpenBSD

Code:
# disklabel sd1
# /dev/rsd1c:
type: SCSI
disk: SCSI disk
label: Hitachi HDS72101
duid: d95eab47f3e6c817
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 121601
total sectors: 1953525168
boundstart: 64
boundend: 1953520065
drivedata: 0

16 partitions:
#                size           offset  fstype [fsize bsize  cpg]
  a:       1939880768               64  4.2BSD   8192 65536    1
  b:          3132723       1939880832  4.2BSD   2048 16384    1
  c:       1953525168                0  unused                 
  d:         10506496       1943013568  4.2BSD   2048 16384    1

Das ist der jeweilige Output (nachdem ich nun "fdisk -i sd1", "disklabel -E sd1" sowie "newfs sd1a" etc. gemacht habe.

Code:
# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/sd0a      4.9G    500M    4.2G    10%    /
/dev/sd1a      921G    8.0K    875G     0%    /mnt/tmproot
/dev/sd1d      4.9G    2.0K    4.7G     0%    /mnt/tmpvar

Mounten geht ohne Probleme... schiebe mal die Daten wieder rüber und teste mal einen Reboot von der Platte dann...
 
Das sieht soweit gut aus. U.U. muss noch "installboot -r /mnt/tmproot sd1" ausgeführt werden.
 
Code:
# cp /usr/mdec/boot /boot                                                  
# /usr/mdec/installboot -n -v /boot /usr/mdec/biosboot sd1
boot: /boot proto: /usr/mdec/biosboot device: /dev/rsd1c
installboot: cross-device install
# reboot

Auch das hat leider nicht gebracht...

Vielleicht ist die Grundherangehensweise auch falsch... eigentlich will ich ja nur die "root-Partition" vergrößern.

Hier nochmals die Daten der ersten Platte....

Code:
# fdisk sd0
Disk: sd0       geometry: 121601/255/63 [1953525168 Sectors]
Offset: 0       Signature: 0xAA55
            Starting         Ending         LBA Info:
#: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
0: 00      0   0   0 -      0   0   0 [           0:           0 ] unused     
1: 00      0   0   0 -      0   0   0 [           0:           0 ] unused     
2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused     
*3: A6      0   1   2 - 121600 254  63 [          64:  1953520001 ] OpenBSD

Code:
# disklabel sd0  
# /dev/rsd0c:
type: SCSI
disk: SCSI disk
label: ST1000DM003-9YN1
duid: c32bdeacc8357687
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 121601
total sectors: 1953525168
boundstart: 64
boundend: 1953520065
drivedata: 0 

16 partitions:
#                size           offset  fstype [fsize bsize  cpg]
  a:       1939865600               63  4.2BSD   2048 16384    1 # /
  c:       1953525168                0  unused
 
Sorry, der von mir angegebene "installboot"-Befehl funktioniert unter 5.5 aufwärts, jedoch nicht unter 5.3.

Deine Idee ist schon richtig, allerdings stimmen die Pfade nicht. Versuch mal:
"/mnt/tmproot/usr/mdec/installboot /mnt/tmproot/boot /mnt/tmproot/usr/mdec/biosboot sd1"

Edit: Falsch ist die Herangehensweise nicht, erstrecht nicht, wenn der ganze Plattenplatz bereits mit disklabel belegt wurde, wonach es mir aussieht. Da wird auch seitens OpenBSD empfohlen, eine zweite Festplatte zu nutzen.
 
Zuletzt bearbeitet:
Code:
# mount /dev/sd1a /mnt/tmproot/                                            
# cp /usr/mdec/boot /mnt/tmproot/boot 
# /mnt/tmproot/usr/mdec/installboot /mnt/tmproot/boot /mnt/tmproot/usr/mdec/biosboot sd1
# umount /dev/sd1a
# reboot

Leider bootet der Server danach immernoch nicht von der 2. HDD....
 
Code:
# disklabel sd1
# /dev/rsd1c:
type: SCSI
disk: SCSI disk
label: Hitachi HDS72101
duid: d95eab47f3e6c817
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 121601
total sectors: 1953525168
boundstart: 64
boundend: 1953520065
drivedata: 0

16 partitions:
#                size           offset  fstype [fsize bsize  cpg]
  a:       1939880768               64  4.2BSD   8192 65536    1
  b:          3132723       1939880832  4.2BSD   2048 16384    1
  c:       1953525168                0  unused                 
  d:         10506496       1943013568  4.2BSD   2048 16384    1

Das ist der jeweilige Output (nachdem ich nun "fdisk -i sd1", "disklabel -E sd1" sowie "newfs sd1a" etc. gemacht habe.
Hier fehlen die Mountpoints?
Auch ist der offset der Root-Partition ein anderer als auf deiner ersten Platte. Weiß allerdings nicht, ob/welche Auswirkungen das hat.
 
Der Offset sollte eigentlich nicht stören, da er "autogeneriert" ist von fdisk bzw. disklabel. Bzgl. des fehlenden "mountpoints" habe ich keine Idee, wie ich den einrichten kann. Aber zeigt der nicht auch einfach nur an, dass gerade diese Platte gemountet ist?
 
Beim Anlegen des disklabels wirst du bei Partition "a" und "d" nach einem Mountpoint gefragt, der auch eigentlich im Output auftauchen müsste, wenn du ihn angegeben hast.

Ansonsten versuche folgendes (keine Garantie, schau selbst nochmal ins disklabel-Manual):

Code:
# disklabel -E -f /mnt/tmproot/etc/fstab sd1
n a
mount point: [] /
n d
mount point: [] /var
w
q

Danach sollte dein disklabel die Mountpoints enthalten und eine aktualisierte fstab geschrieben worden sein.

Edit:
Im Übrigen, wie ich gerade noch sehe, sollte deine Partition "b" vom Typ "swap" sein. Das stimmt noch nicht.

Am besten einfach nochmal das disklabel frisch aufsetzen und darauf achten, dass es mit dem deiner ersten Festplatte übereinstimmt (von size und offset mal abgesehen). Wenn dann "installboot" erfolgreich ausgeführt wurde und die fstab stimmt, _muss_ das funktionieren.

Hier gibt es weiterführende Informationen: http://www.openbsd.org/faq/faq14.html
 
Zuletzt bearbeitet:
Ja, der macht, wenn ich die Partition "b" mit "swap" anlege dann bei "newfs sd1b" immer eine 4.2BSD draus. Warum auch immer...
 
Das wird nicht funktionieren. Es muss auch gar kein "newfs" für die swap-Partition ausgeführt werden. Hauptsache im disklabel ist es korrekt.
Wenn deine Kiste denn dann von der 2. Platte bootet, prüfe mit "swapctl", ob die Partition als swap hinzugefügt wurde.

Btw: Die Zeit, die jetzt hierfür schon ins Land ging, hätte 3x gereicht, um auf deiner zweiten Platte einfach ein frisches 5.5 zu installieren. 5.3 wird nicht mehr unterstützt und das spätere Upgrade von 5.4 auf 5.5 wird auch nicht sonderlich schöner. Im Ernst, der Installer hätte dir deine Platte seit gestern Nacht schon 50x im 15 Minuten-Takt frisch bootfähig installiert. Eigentlich ist das pure vergeudete Zeit, zumal du ne 1a Möglichkeit hast, deine Daten von der 1. Platte entspannt zu migrieren.

Edit: Ok, wer liest, .... Remote-only ist natürlich Mist, aber auf Dauer ist es auch keine Lösung, mit veralteter Software rumzuarbeiten. Da muss ne Lösung her.
 
Zuletzt bearbeitet:
Code:
# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/sd0a      4.9G    501M    4.2G    10%    /
/dev/sd1a      921G    755M    875G     0%    /mnt/tmproot
/dev/sd1d      4.9G    8.3M    4.7G     0%    /mnt/tmpvar
# disklabel sd1
# /dev/rsd1c:
type: SCSI
disk: SCSI disk
label: Hitachi HDS72101
duid: d95eab47f3e6c817
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 121601
total sectors: 1953525168
boundstart: 64
boundend: 1953520065
drivedata: 0

16 partitions:
#                size           offset  fstype [fsize bsize  cpg]
  a:       1939880768               64  4.2BSD   8192 65536    1
  b:          3132723       1939880832    swap               
  c:       1953525168                0  unused               
  d:         10506496       1943013568  4.2BSD   2048 16384    1
# disklabel -E -f /mnt/tmproot/etc/fstab sd1
Label editor (enter '?' for help at any prompt)
> n a
mount point: [none] /
> n d
mount point: [none] /var
> w
> q
No label changes.
# disklabel sd1                          
# /dev/rsd1c:
type: SCSI
disk: SCSI disk
label: Hitachi HDS72101
duid: d95eab47f3e6c817
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 121601
total sectors: 1953525168
boundstart: 64
boundend: 1953520065
drivedata: 0

16 partitions:
#                size           offset  fstype [fsize bsize  cpg]
  a:       1939880768               64  4.2BSD   8192 65536    1
  b:          3132723       1939880832    swap               
  c:       1953525168                0  unused               
  d:         10506496       1943013568  4.2BSD   2048 16384    1
# cat /mnt/tmproot/etc/fstab                                               
/dev/sd1a / ffs rw 1 1
/dev/sd1d /var ffs rw 1 2
/dev/sd1b none swap sw

Okay, mal schauen, was passiert....

P.S. Wollte dann natürlich upgraden auf OpenBSD 5.3. Hatte das bisher wegen der Partitionsgeschichte zurück gestellt. Aber man kann es natürlich auch gleich machen, wobei 5GB Root-Partition nicht viel Platz zum rumspielen sind.
P.P.S. Nach ein bißchen upgraden:
Code:
# uname -a 
OpenBSD 1-1-1-1.wer.kennt.wen.txt 5.5 GENERIC#271 amd64

[NACHTRAG]

Das Problem mit der Partition ist leider nicht gelöst. Habe immer noch keine Möglichkeit von der Platte sd1 zu booten, auch wenn ich alles brav gemacht habe.

[/NACHTRAG]
 
Zuletzt bearbeitet:
Zurück
Oben