Hallo,
Am 15.03.2012 16:33, schrieb Ch. Hanisch:
> Am 15.03.2012 16:19, schrieb Uwe Borchert:
>
>> Ausdrücklich nicht empfohlen, aber von mir verwendet:
>>
>> root@grafix:~# cat /boot/grub/device.map
>> (hd0) /dev/sda
>> (hd1) /dev/sdb
>> root@grafix:~#
> Warum nicht empfohlen?
> Das war doch bei GRUB1 so.
Ja, und mit grub2 sollte alles anders werden ...
> Da ich von der externen Platte boote habe ich stehen bei GRUB1:
> (hd0) /dev/sdb
> (hd1) /dev/sda
>
> Bei mir habe ich jetzt:
> $ sudo cat /boot/grub/device.map
> [sudo] password for benutzer:
> (hd0) /dev/disk/by-id/ata-HL-DT-STDVD+_-RW_GT32N_KYSB6A80222
> (hd1) /dev/disk/by-id/usb-WDC_WD10_EARS-00Y5B1_DCA5A085959F-0:0
> Aber ich bin mir nicht sicher, ob ich da die richtigen Einträge genommen
> habe.
>>
>> Grund: Ich kann das komplette System mit tar klonen ohne irgendwas
>> an den beteiligten Dateien (auch /etc/fstab) zu ändern.
> Wie machst Du das, Befehlsfolge?
Wegpacken des gesamten Systems mit tarsys.sh
#!/bin/bash
#
# docs:
#
a2ps -1 -f 9 -o
00_lesen.ps 00_lesen.txt
ps2pdf
00_lesen.ps
rm -f
00_lesen.ps
zip restore_scripts.zip 00_lesen.txt *.sh
#
# debian 6.0 system:
#
dpkg --get-selections > selections.list
dpkg -l > packages.list
a2ps -4 -o
packages.ps packages.list
ps2pdf
packages.ps
rm
packages.ps*
sync
tar --exclude=/home/* \
--exclude=/mnt/* \
--exclude=/tmp/* \
--exclude=/proc/* \
--exclude=/sys/* \
--exclude=/var/log/samba/* \
--exclude=/var/log/cups/* \
--exclude=/var/run/* \
--exclude=/var/spool/* \
-cvzf system.tar.gz /
sync
echo "Generating filelist from tarball"
tar -tvzf system.tar.gz > system.list
# --- #
# EoF #
# --- #
Wiederauspacken von einer umgebauten Installationscd mit restore.sh
#
# Script for RescueCD
#
tar -C /target -xvzf /cdrom/restore/system.tar.gz
rm -f /target/etc/udev/rules.d/*persistent*.rules
# --- #
# EoF #
# --- #
Hier mal meine etwas unvollständigen Notizen:
Rettungs-DVD fuer Debian (6.0 Squeeze)
Hier ein sehr einfacher Ansatz eine modifizierte Netinstall-CD
zu einer Wiederherstellungs-CD/DVD umzubauen. Typische Anwendung
sind die Wiederherstellung von Systemen nach Hardwareausfaellen
und Festplattentausch oder das Erzeugen eines oder weniger
Klone eines bestehenden System.
Entpacken des Netinstaller-ISO mit bsdtar
Man lade ein Netinstall-ISO-Image herunter und entpacke dieses
im Wiederherstellungsverzeichnis:
bsdtar -C boot_dvd -xf debian-6.0.0-i386-netinst.iso
Damit befindet sich das enpackte ISO-Image in boot_dvd/
(Kein bsdtar? "apt-get install bsdtar"!)
Zusammenstellung der Rettungs-DVD
Alle lokalen Dateien befinden sich im Verzeichniss restore.
Dieses legt man als Unterverzeichnis von boot_dvd/ an.
* diverse Hilfsscripte und Dokumentation (+)
* gepacktes System und Liste der verpackten Dateien
* Listen fuer apt-setselections
(+) Siehe restore_scripts.zip -> Diese Dateien nach
dvd/restore/ verschieben. Damit bleiben diese Dateien auf
der Wiederherstellungs-DVD und koennen als Vorlage fuer
andere Systeme wieder herangezogen werden.
Wichtig! Das zusammengepackte System darf keine UUID mehr
enthalten. Diese befinden sich in:
grub: /boot/grub/device.map
linux: /etc/fstab
Bitte die UUID durch die passenden devices (zB /dev/sda fuer
grub und /dev/sda1 fuer Linux in der /etc/fstab) ersetzen. In
der fstab helfen die auskommentierten Eintraege der
Installationsroutinen weiter, in device.map reicht der Eintrag
der Platte mit der Bootpartition (zB /dev/sda).
---[/boot/grub/device.map]---
(hd0) /dev/sda
(hd1) /dev/sdb
---[.....................]---
---[.....................]---
# /etc/fstab: static file system information.
#
# Use 'vol_id --uuid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
# / was on /dev/sda1 during installation
# UUID=56f74aa1-c0ce-4838-baa2-481724efa9a7 / ext3 errors=remount-ro 0 1
/dev/sda1 / ext3 errors=remount-ro 0 1
#
# /home was on /dev/sdb1 during installation
# UUID=111b870b-6574-429d-89ba-a8ad30e84982 /home ext3 defaults 0 2
/dev/sdb1 /home ext3 defaults 0 2
#
# /tmp was on /dev/sda3 during installation
# UUID=0b215e7a-792c-43dc-87ea-50ac49116918 /tmp ext3 defaults 0 2
#
/dev/sda3 /tmp ext3 defaults 0 2
# swap was on /dev/sda2 during installation
#UUID=81a5a752-a68c-44be-aa57-314d110278c6 none swap sw 0 0
/dev/sda2 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
#
/dev/sdc1 /media/usb0 auto rw,user,noauto 0 0
/dev/sdd1 /media/usb1 auto rw,user,noauto 0 0
---[.....................]---
Im Verzeichnis restore/ befindet sich das Skript tarsys.sh
(u.U. anpassen) zum Verpacken des kompletten System. Weitere
Dokumente kann man nach restore/ in ein Unterverzeichnis
(zB restore/localdoc) kopieren. Externe Pakete (Adobe,
Source und andere Dinge aus/fuer /usr/local/ ...) kann man
unter restore in restore/packages packen. Damit hat man
alles schoen an Fleck.
Erstellen der Rettungs-DVD
Dieser Vorgang ist mit make_iso.sh automatisiert und besteht
aus zwei Schritten:
1) Neuberechnug der md5 checksums im Verzeichnis dvd/
md5sum `find ! -name "md5sum.txt" ! -path "./isolinux/*" -follow -type f` > md5sum.txt
2) Erstellen des neuen Bootimage mit mkisofs
mkisofs \
-o ../boot_dvd.iso \
-r -J -no-emul-boot -boot-load-size 4 -boot-info-table \
-b isolinux/isolinux.bin -c isolinux/
boot.cat dvd
Damit liegt eine fertige ISO-Datei vor. Diese kann nun mit
cdrecord
o.ae. nun gebrannt werden.
Wiederherstellung des System
Booten von DVD, Optionen Rettungsmodus, Sprache und Tastatur
waehlen. Falls die Festplatte noch nicht partitioniert wurde
kann man in einer Konsole (ALT+F2, +F3 ...) sfdisk aufrufen,
die Partitionen anlegen und danach formatieren. Alternativ kann
man diesen Schritt vorab mit einer bequemer zu bedienenden
Live-CD machen.
Sobald die Zielpartition(en) fertig formatiert ist kann man
diese als Installationsziel waehlen. In der zweiten Konsole
(ALT+F2, +F3 ...) mit mount ueberruefen ob target und cdrom
richtig sitzen:
/dev/sda1 on /target ...
/dev/sr0 on /cdrom ...
Dann "/cdrom/restore/restore.sh" aufrufen. Damit wird das
System auf /target entpackt. Die udev-rules enthalten leider
ebenfalls noch Eintraege von alter Hardware: Netzwerkkarten
und CD/DVD-Laufwerke/Brenner. Auch das macht noch das Skript.
rm -f /target/etc/udev/rules.d/*persistent*.rules
Danach ist das System fertig auf der Festplatte aber noch
nicht bootbar. Dies muss leider noch manuell geschehen.
Debian Rettungs-Menu -> Shell in Target-Verzeichnis oeffnen:
$ grub-mkconfig
$ install-grub --force /dev/sda
Der Paramter --force ist notwendig, da grub2 der Meinung ist
das UUID viel sicher und besser als devices sind. Das ist fuer
Wechseldatentrager (externe Festplatten, USB-Stoeckchen) zwar
richtig, aber in unserem Fall kontraproduktiv.
Nach abschliessender Kontrolle kann man reboot eingeben und
ist fertig?
...[Ende der Notizen]...
Nachtrag make_iso.sh
#!/bin/bash
#
# Erstellen des neuen Bootimage
# create a new bootimage
#
# md5sum:
#
cd ..
md5sum `find ! -name "md5sum.txt" ! -path "./isolinux/*" -follow -type f` > md5sum.txt
#
mkisofs -o ../boot_dvd.iso \
-r -J -no-emul-boot -boot-load-size 4 -boot-info-table \
-b isolinux/isolinux.bin -c isolinux/
boot.cat .
Ok, das war jetzt etwas viel auf ein Mal ... Aber ich bin echt zu
faul das ganze richtig aufzubereiten.
MfG
Uwe Borchert