Wie kann ich /usr auf eine ander Partition legen?

imk82

Vice Admiral Special
Mitglied seit
15.06.2002
Beiträge
896
Renomée
0
Hi!
Ich habe vor mein /usr Verzeichnis(Momentan auf /dev/hda1) auf eine andere Partition zu legen.Nun habe ich es nach /dev/hda3 kopiert,so das auf der Partition ein Verzeichnis /usr exestiert(also /dev/hda3/usr).
Um nun die vorherige Struktur von /dev/hda1 wiederherzustellen müßte ich ja /dev/hda3 nach / mounten.Doch das geht nicht,da ich /dev/hda1(muß ja dahin,ist ja die root Partition) ja schon nach / mounte.Wie kann ich das lösen?
Kann man eventuell mit "mount -t auto /dev/hda3/usr /usr"(oder so ähnlich) gezielt das neue usr-Verzeichnis nach /usr mounten oder geht das nur mit der kompletten Partion(also /dev/hda3)?
Ich könnte nun einfach den Inhalt von /dev/hda1/usr nach /dev/hda3 kopieren,ohne extra ein Verzeichnis usr darauf anzulegen.Doch das würde ich der Übersicht halber gern vermeiden.

Annahmen:
/dev/hda1 sei meine "Hauptpartition"(Sämtliche Verzeichnisse und Dateien liegen darauf)
/dev/hda3 sei die Zielpartition auf welche /usr soll


imk82

Edit:Formatierung geändert :)
 
Zuletzt bearbeitet:
Der Grund warum du kaum Antwort bekommst, ist die Formatierung deines Textes. Er ist schwehr zu lesen, weil du keine Absaetze machst, und alles hintereinander klatschst.

Um '/usr' auf eine andere Partition zu bekommen, musst du den Inhalt von '/usr/' auf eine neue Partition kopieren.
Anschliessend mountest du diese partition einfach mit dem Ziel '/usr'.
Code:
DEIN_FS='xfs'
#xfs ist nur ein Beispiel

DEINE_PARTITION='/dev/hda3'
#hda3 ist ebenso ein Beispiel
#############################
###
POSIXLY_CORRECT='yes'
POSIX_ME_HARDER='yes'
###

mkfs.$DEIN_FS /dev/$DEINE_PARTITION;
#dateisystem erstellen

mkdir -p /mnt/tmp_usr;
#temporaeres zielmount erstellen

mount /dev/$DEINE_PARTITION /mnt/tmp_usr;
#partition temporaer mounten

cp -dpR /usr/* /mnt/tmp_usr/;
#Inhalt von /usr kopieren

umount /mnt/tmp_usr;
#temporaeres zielmount unmounten

mv /mnt/tmp_usr /mnt/old_usr;
#der Ort um das alte /usr zu sichern

tar -cpPWF /mnt/old_usr/old_usr.tar /usr/* &&
rm -fr /usr/*;
#das alte /usr sichern

mount /dev/$DEINE_PARTITION /usr;
#das neue /usr mounten

echo "/dev/$DEINE_PARTITION /usr $DEIN_FS defaults 0 0" >> /etc/fstab;
#entsprechenden fstab Eintrag generieren

Nein du kannst nicht nur Verzeichnisse aus Partitionen heraus mounten, was dich uebrigens keinen mm weiter braechte.
 
Zuletzt bearbeitet:
Du musst die Partition schon nach /usr mounten und nicht nach /.
Beispielsweise: mount -t ext3 /dev/hda2 /usr. Du sollstest das ganze aber besser direkt in die fstab schreiben, damit die Partition beim booten gemountet wird.
 
Original geschrieben von Evil E-Lex
Du musst die Partition schon nach /usr mounten und nicht nach /.
Dann stimmen aber die Pfade nicht mehr, weil sich bei ihm ja alles in einem Verzeichnis namens "usr" befindet... und das ist zu entfernen, die Dateien müssen direkt auf die Platte.
 
Original geschrieben von Pilli
Dann stimmen aber die Pfade nicht mehr, weil sich bei ihm ja alles in einem Verzeichnis namens "usr" befindet... und das ist zu entfernen, die Dateien müssen direkt auf die Platte.

Das hab ich dann wohl falsch verstanden. Er hatte es etwas konfus beschrieben, so kann das natürlich nicht klappen...
 
Hi!
Ok,dann werde ich wohl den Inhalt von /usr "nackt" nach /dev/hda3 kopieren müssen.Der Hintergrund,warum ich das nicht tun wollte,ist das ich mein /home Verzeichnis eventuell auch noch auf diese Partition legen wollte.Dann hätte ich sauber und geordnet ein Verzeichnis usr sowie ein home Verzeichnis auf /dev/hda3 gehabt.
Doch wenn es keine Möglichkeit gibt einzelne Verzeichnisse gezielt zu mounten werde ich wohl /home auf eine dritte Partiton legen müssen.

@Tom24
Danke für den Hinweis mit der Unübersichtlichkeit(und natürlich für die ausführliche Antwort),werde mich in Zukunft bemühen etwas übersichtlicher zu schreiben.

imk82
 
@imk82

Du kannst eine x86-Partition noch unterteilen, in Linux geht das mit dem LVM, unter BSd ist das vollkommen ueblich, und nennt sich DiskLabeling.
 
Bin ich der einzige, der denkt, daß das

mv /usr/* /mnt/old_usr/;
#das alte /usr sichern

mount /dev/$DEINE_PARTITION /usr;
#das neue /usr mounten

ein kleines Problem mit sich bringen könnte :D Naja, wenn man schnell ist, passiert nichts böses...
 
Naja,wenn man nicht grad X oder so laufen hat geht das schon.:)Booten kann man ja auch ohne /usr Verzeichnis.Ich habs jetzt so gelöst das ich für home und usr jeweils eine eigene Partition angelegt habe.

imk82
 
Original geschrieben von PrakashP
Bin ich der einzige, der denkt, daß das

ein kleines Problem mit sich bringen könnte :D Naja, wenn man schnell ist, passiert nichts böses...
Wo ist das Problem?
Booten kann man ja auch ohne /usr Verzeichnis.
Der letzte Befehl erstellt einen fstab Eintrag der /usr entsprechend beim booten mounted, und das System im Grunde wie vorher aussieht.
 
Naja,wenn ich das richtig verstehe verschiebt mv ja den Ordnerinhalt.Und in der Zeit zwischen dem verschieben und dem mounten der neuen Partition hat man ein paar Sekunden nix im /usr Verzeichnis.Ist aber kein Problem,denke ich.

imk82
 
Richtig, weil derweil kein Programm auf /usr zugreift. Sonst hätte man es ja vorher nicht unmounten können.
 
Original geschrieben von Diablo
Richtig, weil derweil kein Programm auf /usr zugreift. Sonst hätte man es ja vorher nicht unmounten können.
Wo wird /usr unmounted?

@imk82
Man kann ja auf Nummer sicher gehen, und kopieren/loeschen trennen. MV ist ja an sich nichts anderes.
 
Original geschrieben von Tom24
Wo wird /usr unmounted?

@imk82
Man kann ja auf Nummer sicher gehen, und kopieren/loeschen trennen. MV ist ja an sich nichts anderes.

ok, nehm ich zurück, hab mich geirrt bei folgendem Abschnitt:
umount /mnt/tmp_usr;
#temporaeres zielmount unmounten

Ja, ich weiß, wer lesen kann ist klar im Vorteil :]
 
Hallo,

du kannst uebrigens doch /usr/ und /home/ auf einer Partition speichern, und dann spaeter beim richtigen Mountpunkt einbinden, mit unionfs.
Wenn du das entsprechende Kernelmodul geladen hast, kannst du mit:
Code:
mount -t unionfs -o dirs=/mnt/home_and_usr/home	none /home
mount -t unionfs -o dirs=/mnt/home_and_usr/usr	none /usr
Du musst aber vorher, die Partition die dein /home und /usr enthaelt, nach /mnt/home_and_usr, wie diesem Beispiel, mounten.

Allerdings halte ich das fuer eine Zweckentfremdung von unionfs, zusaetzlich erzeugt es Overhead. Prinzipiell kannst du die Dateisysteme auch als Datei auf einer anderen Partition ablegen und dann mounten, was aber noch *chatt*er ist.
 
Zurück
Oben Unten