Virtuelles FreeBSD, Festplatte vergrößern

Dany

Well-Known Member
Hallo,

seit ein par Tagen versuche ich eine Festplatte an die neue größe der virtuellen Platte anzupassen.

Ich habe mir ein FreeBSD 6.2-RELEASE-p1 installiert, dann habe ich mir eine weitere virtuelle Festplatte mit 1GB hinzugefügt. Bis hier hatte ich auch noch keine Probleme. Das ganze ist auch nur ein Testsystem um herauszufinden ob es möglich ist die Platte im BSD zu vergrößern.

Ich habe den BSD Rechner heruntergefahren und die Festplatte von 1GB vergrößert auf 2GB und den Server gestartet.

Die Daten sind weiterhin alle erhalten geblieben und im fdisk wird die Partition mit 1GB angezeigt und die Gesamtgröße von 2GB.

Jetzt habe ich nur das Problem das die Partition an die neue größe anzupassen ist. Hierzu finde ich einfach keine passende Lösung. Natürlich suche ich nach einer Möglichkeit dieses vorzunehmen ohne die Daten in dieser Partition zu verlieren.

Habt ihr eine Möglichkeit wie ich das umsetzten kann?

Ein df zeigt folgende Ausgabe:
Code:
df
Filesystem  1K-blocks    Used   Avail Capacity  Mounted on
/dev/da0s1a    507630   60098  406922    13%    /
devfs               1       1       0   100%    /dev
/dev/da0s1e    507630      10  467010     0%    /tmp
/dev/da0s1f   2315628 1786764  343614    84%    /usr
/dev/da0s1d   1255886   34018 1121398     3%    /var
devfs               1       1       0   100%    /var/named/dev
/dev/da1s1d   1008590       6  927898     0%    /userhome01

Die Ausgabe von bsdlabel zeigt die Ausgabe:
Code:
 bsdlabel -A da1s1
# /dev/da1s1:
type: SCSI
disk: da1s1
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 261
sectors/unit: 4194304
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0           # milliseconds
track-to-track seek: 0  # milliseconds
drivedata: 0

8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  c:  2088387        0    unused        0     0         # "raw" part, don't edit
  d:  2088387        0    4.2BSD     2048 16384 28552
bsdlabel: partition c doesn't cover the whole unit!
bsdlabel: An incorrect partition c may cause problems for standard system utilities

Bin für jeden Tip dankbar.


Danke Daniel
 
Hallo,

danke für deine Antwort. Das mit den growfs teste ich auch schon aber das mag einfach nicht so funktionieren wie ich mir das vorstelle. Wie ich den Befehl auch anwenden mag, es kommt immer zu einer Fehlermeldung.

Folgendes ist meiner Meinung nach der richtige Ansatz, der aber nicht funktioniert.

Code:
#umount /userhome01
#bsdlabel -A da1s1
# /dev/da1s1:
type: SCSI
disk: da1s1
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 261
sectors/unit: 4194304
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0           # milliseconds
track-to-track seek: 0  # milliseconds
drivedata: 0

8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  c:  2088387        0    unused        0     0         # "raw" part, don't edit
  d:  2088387        0    4.2BSD     2048 16384 28552

# growfs -s 4194304 /dev/da1s1d
growfs: there is not enough space (2088387 < 4194304)

Ich denke das bei meinen Ablauf ein Fehler ist, aber wo?

Oder muss ich vorherr noch etwas anderes erledigen?


Danke Daniel
 
du hast sicher auch die partition vergrößert, dass sie 2G groß ist, oder? in deinen anzeigen ist die partition nämlich immernoch nur 1G groß. du musst erst mit fdisk die partition vergrößern - wichtig ist, dass der startpunkt derselbe bleibt, sonst sind die daten hin - damit sollte es dann klappen.

viel erfolg
 
Hallo,

danke für deine Antwort. Mit fdisk habe ich schon getestet aber ich bekomme die Partition einfach nicht größer. Hast du noch einen Ansatz wie das funktionieren sollte, vielleicht auch den passenden Befehl.

Würde mich sehr freuen. :)

Bis jetzt habe ich es immer über sysinstall probiert aber ohne Erfolg, es wurden immer alle Daten von der Partition gelöscht.



Danke Daniel
 
also wenn ich die manpage von growfs richtig verstehe, musst du erst mit fdisk die partition vergrößern. ich würde folgerndermaßen vorgehen:
mit fdisk den slice löschen und größer neu erstellen
Code:
If you wish
     to grow a file system beyond the boundary of the slice it resides in, you
     must re-size the slice using fdisk(8) before running growfs.
anschließend mit bsdlabel das entsprechende label anpassen
Code:
Before starting growfs
     the disk must be labeled to a bigger size using bsdlabel(8).
danach sollte growfs das entsprechend vergrößern. also sichern und es dann versuchen. ich habe es selber bisher noch nicht gemacht, aber das ist der weg, wie ich vorgehen würde. da du in einer virtuellen maschine arbeitest, würde ich dir empfehlen, vorher nen snapshot dieser anzufertigen, damit du zur not nen anderen weg einschlagen kannst.

man möge mich verbessern, falls ich hier mist geschrieben habe.

hth,
marc
 
Hallo,

und danke für deinen Vorschlag. Durch deine Antwort sehe ich jetzt das ich auf den richtigen Weg bin. Leider habe ich es bis jetzt noch keine Möglichkeit gefunden dieses durch zu führen ohne Datenverlust und growfs hat noch nie geklappt.

Das mit fdisk und bsdlabel habe ich bis jetzt immer über sysinstall durchgeführt aber ohne Erfolg. Ich habe hier einfach einen Fehler oder das ganze funktioniert einfach nicht.

Gibt es eine Möglichkeit das ganze ohne sysinstall durchzuführen?

Ich komme einfach nicht weiter.


Danke Daniel
 
Das wäre doch einen Wiki-Artikel wert, denn demnächst müsste ich das wegen einer Vergrößerung des Raid-Arrays auch mal machen.
 
ich hab das gerade mal mit meinem /home gemacht, da ich noch ein wenig platz frei hatte auf der platte. bsdlabel -r gibt es nicht (6.2-stable). mit bsdlabel -e kann man das label editieren (aus fdisk bekommt man die größe für "c" - diese muss ebenfalls angepasst werden, da das slice ja nun größer ist. den rest dann per papier und stift summieren und von "c" abziehen, um die neue größe zu bekommen). anschließend growfs (wahlweise mit "-s", ansonsten wird die gesamte partition bis zum ende genommen) anwerfen und entsprechend vergrößern lassen. fertig. :)

hth,
marc
 
Moin.

Sorry fürs ausgraben, aber hab den Thread hier so schön über Goggle gefunden.

Problem ist: ich hab ein FreeBSD inner VM. Nun ist leider meine "Platte" zu klein, und ich habe sie im VMware-Server auf 16GB vergrößert.

Nun versuche ich, den neuen freien Platz auch meinem FreeBSD zu verfügung zu stellen.

Als erstes muss ich ja die Partition mit fdisk vergrößern.
Leider bekomme ich immer die Fehlermeldung:
Fdisk: class not found

Hab nun gelesen, dass dies etwas mit GEOM zu tun haben soll, aber leider hab ich davon keine ahnung (und find auch net viel dazu)?

Die nächsten Schritte wären dann „disklabel“ und „growfs“. Logischerweise können die aber ja nicht funktionieren, wenn ich vorher nicht mit fdsik den neuen Platz einbinde.

Jmd ne Ahnung wie ich das Lösen kann?

Danke

PS: nutze FreeBSD 8.0
 
Also, zwei Punkte: Erst einmal musst du im laufenden Betrieb das Sysctl "kern.geom.debugflags" auf 16 setzen. Ansonsten darfst du die Partitionierung gar nicht verändern. Das ist eine Kindersicherung, die das versehentliche Killen von Platten verhindern soll. Kam immer mal wieder vor und gerade GEOM neigt dazu es zu provozieren, wenn man mal kurz nicht aufpasst. Daher nach der Änderung auch wieder auf 1 zurücksetzen. :)

Auch dann wird fdisk noch immer über GEOM nörgeln, aber es sollte gehen. Das ist der zweite Punkt. fdisk kann verwendet werden, sollte aber nicht, da es nicht sauber in GEOM integriert. Die neue Magie für Partitionsschemen aller Art heißt gpart(8). Wenn du es graphisch magst, eventuell auch noch sade(8), aber der ist für deine Zwecke wohl zu dumm.

Außerdem, growfs(8) ist in gewisser Weise gefährlich. Es zerlegt UFS2-Dateisysteme unter Umständen. Ich habe eine Version, die besser funktioniert, aber die hat es leider nicht mehr ins 8.0 geschafft. Ich kann sie nachher vom Rechner zu Hause hochladen.
 
Danke erstmal für deine Tipps. Von Gparted kenne ich nur die Grafische Oberfläche von Ubuntu, die zickt aber auch gerne rum (außerdem ist ja meine Platte voll, also kann ich auch nix installieren). Da ich auf die schnelle auch keine gute Anleitung für gpart ohne grafische Oberfläche gefunden habe, hab ich doch fdisk benutzt.

Es kam zwar immernoch der Fehler "Class not found", aber es scheint wohl (wie du gesagt hast) trotzdem geklappt zu haben. Fdisk sagt nun für Partition1: 16112 Meg

Nun behauptet aber BSDlabel/disklabel "no label found", bzw bei dem Parameter -w sagt es auch "class not found".

growfs bringt bei "growfs -s 32997447 /dev/da0s1f" die Meldung:
Operation not permitted
(-s ist der Wert von fdisk, und df -h gibt mir "da0s1f" als volles Filesystem an)

Irgendwie bin ich zu doof..
Aber der Pussyweg, einfach die VM zu löschen und neu zu installieren ist lame *g* Vorallem aber lernt man nix dabei :)
 
Zuletzt bearbeitet:
Ich glaube, es wäre wesentlich erfolgsversprechender, wenn du hier kurz erläuterst, woran es scheitert.
 
Eigentlich an allem ich habe dich mal i icq kontakt hinzugefügt!!!!!!!!!!!!!!!!!!!!!!!!
kanst du mitr des pls machen i wil die -usr partition vergrösern!!!!
i han alle sausprobiert aber es geht net xd nim mi dan mal in icq an i bin thom thx
 
Ich befürchte, du müsstest zunächst die defekte Tastatur auswechseln.. Ich versteh kein Wort!
 
Erstens: Ich betreue grundsätzlich nur Personen, die die deutsche Rechtschreibung halbwegs beherrschen und sich in Sachen Groß- und Kleinschreibung Mühe geben. Ich erwarte keine Perfektion, aber auch nicht sowas. Und nun kommt nicht mit dem Legasthenie-Argument, jeder besser Browser hat heute eine Rechtschreibprüfung und die zu nutzen ist nun wirklich nicht zu viel verlangt.

Zweitens: Beratungen mache ich nicht über ICQ, da das Protokoll unsicher ist und man da dank den Datenkraken von AOL eh nichts unverschlüsselt rüberschicken darf. Wenn überhaupt XMPP.

Drittens: Ich koste Geld und nicht gerade wenig. Da die Zahlungsmoral schlecht geworden ist, stehe ich bei Neukunden erst aus meinem Sessel auf, wenn eine angemessene Anzahlung getätigt wurde. Die genaue Höhe hängt vom Auftragsvolumen ab, zu viel gezahltes Geld wird selbstverständlich zurückerstattet. Bei dir würde ich zusätzlich eine Schufa-Auskunft einholen wollen, wozu ich erst einmal eine rechtsgültige Einwilligung bräuchte und zwar auf Papier.
 
sry aber i bin Legasteniker ok hast du msn
ok i verste net was i eingeben mus damit man mit fdisk die partition vergrösern kan bzw mit bsdlabel und dan mit growfs die partition vergrösern xd kanst du mirt mal die codes sgan die i da nehmen muss
die festplate bzw partition ist die ad0s1f pls thx
 
Ich schwöre der Typ schreibt mit einer Mobiltelefontastatur. Anders sind diese Abkürzungen nicht mehr zu erklären.
 
sry aber i bin Legasteniker ok hast du msn
ok i verste net was i eingeben mus damit man mit fdisk die partition vergrösern kan bzw mit bsdlabel und dan mit growfs die partition vergrösern xd kanst du mirt mal die codes sgan die i da nehmen muss
die festplate bzw partition ist die ad0s1f pls thx
 
Noch einmal. Stelle die Frage vernünftig und man wird die helfen. So aber eher nicht. Punkt.
 
ok ich wil bei freebsd du usr partition erweitern freebsd ligt bei mir auf einer 130 gig festplate davon sind 30 gig belegt für freebsd der rest ist unpatitionirt jetzt wil ich wissen wie man die usr partition mit growfs erweitert also die partition ad0s1f ich weis net ich habe gelesen das man da dan was mit fdisk machen mus ich blik des net also könntest du mir vieleicht die befele zusammenstellen die ich eingeben muss? bitte!!!!!!!!!!!!!!!
 
ok ich wil bei freebsd du usr partition erweitern freebsd ligt bei mir auf einer 130 gig festplate davon sind 30 gig belegt für freebsd der rest ist unpatitionirt jetzt wil ich wissen wie man die usr partition mit growfs erweitert also die partition ad0s1f ich weis net ich habe gelesen das man da dan was mit fdisk machen mus ich blik des net also könntest du mir vieleicht die befele zusammenstellen die ich eingeben muss? bitte!!!!!!!!!!!!!!!

Wir sollen Dir also glauben, daß Deine Tastatur über keinerlei Großbuchstaben verfügt und weder Punkt noch Komma hat? Das kannst Du nicht ernsthaft erwarten!

Na immerhin war das Geschreibsel nicht mehr ganz so grauenhaft wie vorher, also:

Das mit growfs usw. würde ich bei Deinem Kenntnisstand eher nicht riskieren. Es gibt auch andere Mittel und Wege. Ich würde die home-Verzeichnisse, die normalerweise unter /usr liegen, in eine eigene Partition auslagern. Versuche folgendes nach einem Boot in den Single User Mode:

a) eine neue (!) Partition anlegen und formatieren. Verwende dazu am besten den Weg über sysinstall, wie im Handbuch unter III.18.3.1 beschrieben.
b) sysinstall verlassen
c) den Link /home, der auf /usr/home zeigt, löschen.
d) mkdir /home
e) in der /etc/fstab das Verzeichnis /home als Mountpoint für die neue Partition festlegen, ähnlich wie /usr und andere, die dort aufgeführt sind. Siehe Handbuch I.3.6!
f) mount /home
g) cp -R /usr/home /home
h) testweise booten und als Normaluser einloggen.
i) und wenn alles geht: rm -r /usr/home

Das war jetzt ganz schnell und grob. Geh das alles genau durch und schlag es im Handbuch nach, bevor Du loslegst! Wenn etwas schiefläuft, sollte sich mit
a) umount /home
b) rmdir /home
c) ln -s /usr/home /home
der alte Zustand wiederherstellen lassen. Dann hast Du nichts verloren.

Hoffe geholfen zu haben. Aber Dein Schreibstil ist wirklich inakzeptabel, laß Dir das nochmal gesagt sein. :belehren:
 
Ansonsten siehe auch man fdisk und man growfs (um mal auf das ursprüngliche Anliegen zurückzukommen...)
 
Zurück
Oben