Partionen verändern ohne Datenverlust *gelöst*

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Benutzeravatar
garibaldi
Beiträge: 2443
Registriert: 17.09.2004 02:31:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von garibaldi » 19.06.2007 00:18:30

Das sieht doch schonmal sehr gut aus! :)

Da diese Verschieberei verlustfrei geklappt hat, wird der Rest auch gut über die Bühne gehen; dies war nähmlich der heiklere Part.

/usr, /tmp und /var passen ja nun alle in / hinein.
garibaldi hat geschrieben:Wenn das alles geklappt hat, würde ich /usr, /var und /tmp nach / verschieben und die entsprechenden Patitionen löschen. Das geht nach folgendem Schema, am Beispiel von /usr:

Code: Alles auswählen

# mkdir /usr-new
# cp -vR /usr/* /usr-new/
# umount /dev/sda5
# mv /usr-new /usr
Nun in der fstab den Eintrag für usr auskommentieren und neu starten. Wenn alles reibungslos verlaufen ist, kannst du sda5 löschen.

Sodann wiederholst du dieses Verfahren für /var und /tmp und kannst den dadurch gewonnenen Platz sda1 zuteilen.

Bei /tmp musst du noch gucken, ob in den Dateirechten das "t" durch den Kopiervorgang übernommen wurde, es sollte so aussehen:

Code: Alles auswählen

# ls -l / |# grep tmp
drwxrwxrwt   9 root root  4096 2007-06-18 06:28 tmp
Falls dies nicht der Fall ist, belasse /tmp auf sda8, bis du weißt, wie man dieses Spezialattribut setzt, mir fällt das gerade nicht ein.
Der cp-Befehl bedarf noch dringend einer Überarbeitung. Jedenfalls brauchst du noch die Option -p (--preserve), wodurch die Dateiattribute erhalten bleiben.

Desweiteren ist der Umgang mit Symlinks zu bedenken. Da bin ich mir nicht ganz sicher, ob du -d (--no-dereference) benötigst, glaub aber schon. Schließlich soll nur der Link kopiert werden und nicht das Ziel noch einmal. Am besten du legst dir in /tmp einen Symlink an und startest mit /tmp. Dann überprüfst du, ob die Rechte stimmen und der Symlink kopiert wurde und genauso funktioniert wie vorher.[1]

Ach ja, das sticky bit("t") setzt man ganz normal mit chmod, was du dann aber bei Verwendung von "-p" nicht manuell zu setzen brauchst.

/Edit:
[1] Ja, "-d" brauchst du unbedingt :!: Ich habe mal ein wenig probiert.

Ohne "-d" :

Code: Alles auswählen

guybrush@marvin:/tmp$ ls -l copy-test
insgesamt 0
lrwxrwxrwx 1 guybrush guybrush 6 2007-06-19 00:57 bla -> blabla
-rw-r--r-- 1 guybrush cdrom    0 2007-06-19 00:56 blabla
guybrush@marvin:/tmp$ cp -p copy-test/* copy-test-archiv/
guybrush@marvin:/tmp$ ls -l copy-test-archiv/
insgesamt 0
-rw-r--r-- 1 guybrush cdrom 0 2007-06-19 00:56 bla
-rw-r--r-- 1 guybrush cdrom 0 2007-06-19 00:56 blabla
cp hat also das Ziel des Symlinks kopiert und nicht den Link selbst. Die Datei "blabla" wurde als "bla" kopiert, vgl. die Rechte, Zugehörigkeiten und Timestamps.

Bei den ganzen Symlinks in /usr wäre das ziemlich blöd, vor allem bei denen, die auf Verzeichnisse zeigen. :twisted:

Mit "-d" :

Code: Alles auswählen

guybrush@marvin:/tmp$ cp -pd copy-test/* copy-test-archiv/
guybrush@marvin:/tmp$ ls -l copy-test-archiv/
insgesamt 0
lrwxrwxrwx 1 guybrush guybrush 6 2007-06-19 01:28 bla -> blabla
-rw-r--r-- 1 guybrush cdrom    0 2007-06-19 00:56 blabla
So ist es richtig, siehe auch die Rechtevergabe und Gruppenzuordnung. Zu beachten ist auch, dass der Symlink nicht einfach kopiert wird, sondern neu angelegt. Daher erhält er einen neuen Timestamp. Ob sich dieses Verhalten anders steuern lässt, weiß ich nicht, ist für deinen Fall aber auch Wurst.

Ich habe das ganze auch als root ohne "-p" getestet, dann gehören die Dateien root. Mit "-p" bleiben auch Eigentümer und Gruppe der Dateien erhalten.

Also brauchst du "-pdR", abgekürzt auch "-a", und nach Belieben ein verbose, dann also "-va".

Ansonsten sollte alles nach obigen Schema funktionieren. Ich bin gespannt auf deine Rückmeldung und ob du an dem Verfahren noch weitere Anpassungen vornehmen musstest.

Gruß, garibaldi
Was einer im Reiche der Wahrheit erwirbt, hat er allen erworben... -- Schiller

deta1
Beiträge: 978
Registriert: 23.07.2003 17:11:11

Beitrag von deta1 » 19.06.2007 07:15:47

Morgen!

Also bis zu dieser Zeile wars klar.. Dann nur noch ?!?!
Also brauchst du "-pdR", abgekürzt auch "-a", und nach Belieben ein verbose, dann also "-va".

Nun soll es so?!?

Code: Alles auswählen

guybrush@marvin:/tmp$ cp -pdR copy-test/* copy-test-archiv/
guybrush@marvin:/tmp$ ls -l copy-test-archiv/
insgesamt 0
lrwxrwxrwx 1 guybrush guybrush 6 2007-06-19 01:28 bla -> blabla
-rw-r--r-- 1 guybrush cdrom    0 2007-06-19 00:56 blabla
?!
Nun komplett erst mal durcheinandern..

cu Deta

Benutzeravatar
garibaldi
Beiträge: 2443
Registriert: 17.09.2004 02:31:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von garibaldi » 19.06.2007 07:35:42

Moin!

Code: Alles auswählen

cp -pdR
ist dasselbe wie

Code: Alles auswählen

cp -a
Siehe manpage. Also ja, du nimmst entweder -pdR oder -a.

Und wenn du es mit Anzeige(verbose) haben möchtest, kommt das -v noch dazu.

Code: Alles auswählen

 cp -va /altes_Verzeichnis/* /neues_Verzeichnis/
Jetzt klar?

/edit: Oder liegt's daran, dass ich -R nicht weiter erläutert habe? Das heißt rekursiv, mit Unterverzeichnissen. Das brauchte ich für den Test natürlich nicht, weil bei meinem Testverzeichnis keine drin sind.
Was einer im Reiche der Wahrheit erwirbt, hat er allen erworben... -- Schiller

deta1
Beiträge: 978
Registriert: 23.07.2003 17:11:11

Beitrag von deta1 » 19.06.2007 07:50:32

Ok!

Dann sollte es s

Code: Alles auswählen

guybrush@marvin:/tmp$ cp -pdR copy-test/* copy-test-archiv/ 
Ja keine Probs geben, wenn ich heute irgendwann die Verzeichnisse kopiere bei mir..

cu Deta

Benutzeravatar
garibaldi
Beiträge: 2443
Registriert: 17.09.2004 02:31:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von garibaldi » 19.06.2007 08:09:00

deta1 hat geschrieben:Ok!

Dann sollte es s

Code: Alles auswählen

guybrush@marvin:/tmp$ cp -pdR copy-test/* copy-test-archiv/ 
Ja keine Probs geben, wenn ich heute irgendwann die Verzeichnisse kopiere bei mir.
Ja, genau. Um alle Klarheiten zu vermeiden, hab ich's nochmal so aufgeschrieben:

Code: Alles auswählen

guybrush@marvin:~$ cd /tmp
guybrush@marvin:/tmp$ mkdir kann_weg
guybrush@marvin:/tmp$ cd kann_weg/
guybrush@marvin:/tmp/kann_weg$ touch blabla
guybrush@marvin:/tmp/kann_weg$ ln -s blabla bla
guybrush@marvin:/tmp/kann_weg$ ls -l
insgesamt 0
lrwxrwxrwx 1 guybrush guybrush 6 2007-06-19 07:57 bla -> blabla
-rw-r--r-- 1 guybrush guybrush 0 2007-06-19 07:56 blabla
guybrush@marvin:/tmp/kann_weg$ su
Password:
marvin:/tmp/kann_weg# cd /
marvin:/# mkdir tmp-new
marvin:/# cp -vpdR /tmp/* /tmp-new/
So hast du's mit Ausgabe. Dann kannst du gucken, ob die Rechte/Zugehörigkeiten noch stimmen und der link unter /tmp-new/kann_weg/ als link da ist.

Dann weiter wie oben beschrieben.
Was einer im Reiche der Wahrheit erwirbt, hat er allen erworben... -- Schiller

deta1
Beiträge: 978
Registriert: 23.07.2003 17:11:11

Beitrag von deta1 » 19.06.2007 14:26:03

So nun hab ich /var /usr /tmp nach new-tmp new-usr new-var

per cp copiert! Bis auf das tmp Verzeichniss alles perfekt geklappt nur ich muste
beim tmp noch ein chmod 777 auf das new-tmp geben! Damit beides gleich war!
Rechte etc..

Nun wollte ich das /dev/sda5 umount aber..

Code: Alles auswählen

umount /dev/sda5
umount: /usr: device is busy
umount: /usr: device is busy
ok etwas brutaler dannn

umount -l /dev/sda5

dann wars erledigt..

dann rm Verzeichniss var

dann mv new-var var

fstab angepasst fertig!

So nun noch die alten Partionien löschen! *g* Da hab ich erst mal nen schreck bekommen!
Durch das Löschen von sda 5 6 8 haben sich die anderen Partionen verschoben.

aus sda 9 wurde jetzt 6
aus sda 7 wurde jetzt 5

fstab noch mal angepasst und fertig. Aber im ersten Moment hab ich nen schreck bekommen,
da das System erst mal nicht gebootet mehr hat...

SOSOSO was mache ich nun mit dem restlichen freien Speicher...

So ist es jetzt..

Code: Alles auswählen

deta:/home/deta# df -h
Dateisystem          Größe Benut  Verf Ben% Eingehängt auf
/dev/sda1             9,8G  3,8G  5,6G  40% /
tmpfs                 503M     0  503M   0% /lib/init/rw
udev                   10M   52K   10M   1% /dev
tmpfs                 503M     0  503M   0% /dev/shm
/dev/sda6             210G   13G  188G   7% /home

Code: Alles auswählen

deta:/home/deta# fdisk -l

Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1308    10506478+  83  Linux
/dev/sda2            1309       30401   233689522+   5  Extended
/dev/sda5            2283        2612     2650693+  82  Linux swap / Solaris
/dev/sda6            2662       30401   222821518+  83  Linux
cu Deta

Benutzeravatar
garibaldi
Beiträge: 2443
Registriert: 17.09.2004 02:31:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von garibaldi » 19.06.2007 21:43:42

deta1 hat geschrieben:per cp copiert! Bis auf das tmp Verzeichniss alles perfekt geklappt
Glückwunsch! :)
deta1 hat geschrieben:nur ich muste beim tmp noch ein chmod 777 auf das new-tmp geben! Damit beides gleich war!
Rechte etc..
Ja, logisch, da hatte ich ein Brett vorm Kopf :oops: Das Verzeichnis ist ja neu erstellt und umbenannt worden, daher sind nur die Rechte des Inhalts des alten /tmp erhalten, nicht die des Verzeichnisses selbst. Dann musst du das wohl doch per Hand mit dem sticky bit versehen, oder hast du schon gemacht?

Code: Alles auswählen

chmod +t /tmp
deta1 hat geschrieben:Nun wollte ich das /dev/sda5 umount aber..

Code: Alles auswählen

umount /dev/sda5
umount: /usr: device is busy
umount: /usr: device is busy
ok etwas brutaler dannn

umount -l /dev/sda5
Auch gut zu wissen!
deta1 hat geschrieben:So nun noch die alten Partionien löschen! *g* Da hab ich erst mal nen schreck bekommen!
Durch das Löschen von sda 5 6 8 haben sich die anderen Partionen verschoben.

aus sda 9 wurde jetzt 6
aus sda 7 wurde jetzt 5

fstab noch mal angepasst und fertig. Aber im ersten Moment hab ich nen schreck bekommen,
da das System erst mal nicht gebootet mehr hat...
Ach klar, daran hätt ich auch denken können! Ist ja klar, dass sich die Benamsung ändert...
deta1 hat geschrieben:SOSOSO was mache ich nun mit dem restlichen freien Speicher...
Ich würde sda1 noch 5 G gönnen und den Rest als Spielwiese für ein anderes System nutzen. Vielleicht mal Sid ausprobieren? Oder mal ganz was anderes, plan9 find ich gerade spannend; mein Rechner hat die CD davon leider nicht hochgefahren, das werd ich aber nochmal mit qemu versuchen.


Vielen Dank auf jeden Fall für den Bericht, das wird auch anderen helfen, die sich in eine ähnliche Situation hineinmanövriert haben. Den Threadtitel könnte man auch als Bezeichnung für ein Howto lesen, wenn du noch ein "gelöst" dareinschreibst. ;)
Und mal wieder ein nettes Beispiel, dass man unter Debian GNU/Linux auch ohne das System neu aufzusetzen das meiste retten kann. 8)

Gruß, garibaldi
Was einer im Reiche der Wahrheit erwirbt, hat er allen erworben... -- Schiller

deta1
Beiträge: 978
Registriert: 23.07.2003 17:11:11

Beitrag von deta1 » 19.06.2007 21:50:38

Erst mal allen ein DANKE für die Hilfe....

Noch die letzte Frage,

was macht das

Code: Alles auswählen

chmod +t /tmp
Hatte nich noch nicht gemacht gehabt..

cu Deta

Benutzeravatar
garibaldi
Beiträge: 2443
Registriert: 17.09.2004 02:31:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von garibaldi » 19.06.2007 22:07:16

Das setzt das sog. sticky bit:

Code: Alles auswählen

$ ls -l / | grep tmp                                           
drwxrwxrwt   9 root root  4096 2007-06-19 21:02 tmp
So sieht es standardmäßig bei Debian aus.
Ganz genau kann ich es nicht erklären, aber es ermöglicht, dass verschiedene user im selben Verzeichnis ihre temporären Daten ablegen können, ohne sich gegenseitig zu stören.
Zuletzt geändert von garibaldi am 19.06.2007 22:35:13, insgesamt 1-mal geändert.
Was einer im Reiche der Wahrheit erwirbt, hat er allen erworben... -- Schiller

azerty
Beiträge: 965
Registriert: 15.02.2007 20:18:17

Beitrag von azerty » 19.06.2007 22:17:31

garibaldi hat geschrieben:Vielleicht mal Sid ausprobieren? Oder mal ganz was anderes, plan9 find ich gerade spannend; mein Rechner hat die CD davon leider nicht hochgefahren, das werd ich aber nochmal mit qemu versuchen.

Gruß, garibaldi
Bezüglich Plan 9 einfach mal hier reinschauen, das ist sozusagen der Sammelthread. :wink:
.

Benutzeravatar
garibaldi
Beiträge: 2443
Registriert: 17.09.2004 02:31:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von garibaldi » 19.06.2007 22:33:18

azerty hat geschrieben:Bezüglich Plan 9 einfach mal hier reinschauen, das ist sozusagen der Sammelthread. :wink:
Über diesen Thread bin ich auch drauf gekommen! ;)
Was einer im Reiche der Wahrheit erwirbt, hat er allen erworben... -- Schiller

Benutzeravatar
garibaldi
Beiträge: 2443
Registriert: 17.09.2004 02:31:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von garibaldi » 03.07.2007 03:15:03

deta1, ich habe nun einen Wiki-Artikel hieraus erstellt, lies bitte korrektur, falls ich etwas vergessen haben sollte.
Was einer im Reiche der Wahrheit erwirbt, hat er allen erworben... -- Schiller

deta1
Beiträge: 978
Registriert: 23.07.2003 17:11:11

Beitrag von deta1 » 03.07.2007 08:27:16

Würde sagen auf den ersten schnellen blick Perfekt..

cu Deta

Antworten