sirko
Sirko
Hi.
ich habe regelmäßig ne Installation, die auf andere Platten kopiert werden muß. Die Platten haben leider oft unterschiedliche Größen. Daher würde ich mir gern ein Script schreiben welches die Inhalte der Platten mit cpdup anstelle von dd schnell und effektiv kopiert.
Folgendes Script kann so nicht funktionieren, denke ich. Es ist bestimmt nicht möglich, mit bsdlabel einfach so Platte A auszulesen und auf Platte B übertragen zu wollen. Die Platte muss ja auch irgendwie bootfähig gemacht werden. Aber grundsätzlich müßte es mit der Methode doch gehen, man könnte auch noch einen Schritt einbauen, im gemounteten Ziel-Dateisystem Konfigurations-Dateien anzupassen. Da ich keinerlei Erfahrung mit bsdlabel habe, stelle ich den ersten Arbeitsentwurf mal zur Diskussion.
Meine wichtigste Fragen wären:
Wie kriege ich bsdlabel dazu, für einzelne Partitionen wie /, /usr, swap feste Größen zu benutzen und den kompletten restlichen freien Bereich z.B. für /var oder /home zu benutzen?
Wie kriege ich die Platte bootfähig?
Also nochmal: Dieser Code funktioniert so nicht!
ich habe regelmäßig ne Installation, die auf andere Platten kopiert werden muß. Die Platten haben leider oft unterschiedliche Größen. Daher würde ich mir gern ein Script schreiben welches die Inhalte der Platten mit cpdup anstelle von dd schnell und effektiv kopiert.
Folgendes Script kann so nicht funktionieren, denke ich. Es ist bestimmt nicht möglich, mit bsdlabel einfach so Platte A auszulesen und auf Platte B übertragen zu wollen. Die Platte muss ja auch irgendwie bootfähig gemacht werden. Aber grundsätzlich müßte es mit der Methode doch gehen, man könnte auch noch einen Schritt einbauen, im gemounteten Ziel-Dateisystem Konfigurations-Dateien anzupassen. Da ich keinerlei Erfahrung mit bsdlabel habe, stelle ich den ersten Arbeitsentwurf mal zur Diskussion.
Meine wichtigste Fragen wären:
Wie kriege ich bsdlabel dazu, für einzelne Partitionen wie /, /usr, swap feste Größen zu benutzen und den kompletten restlichen freien Bereich z.B. für /var oder /home zu benutzen?
Wie kriege ich die Platte bootfähig?
Also nochmal: Dieser Code funktioniert so nicht!
Code:
#!/bin/sh
dd if=/dev/zero of=/dev/da1 bs=1k count=1
# Initialisieren der neuen Platte
fdisk -BI ad2
# Labeln
bsdlabel -B -w -r ad2s1 auto
# Disklabel von der Quell-Platte lesen
bsdlabel ad0 > /tmp/bsdlabel.txt
# Editieren des Disklabels und Hinzufügen von Partitionen
bsdlabel -R /tmp/bsdlabel.txt
rm /tmp/bsdlabel.txt
# Diesen Part fuer jede Partition wiederholen
#--------------------------------------------------
[test -d /mnt/root/] || mkdir -p /mnt/root
# Dateisystem erzeugen
newfs /dev/ad2s1a
# Anhängen der Partitionen
mount /dev/ad2s1a /mnt/root/
# Kopie mit cpdup von der Quelle
cpdup -v / /mnt/root/
#--------------------------------------------------