Standard GNU file utilities (chmod, cp, dd, dir, ls…), text utilities (sort, tr, head, wc..), and shell utilities (whoami, who,…)
Es wird angenommen, dass in /mnt/system gechrootet werden soll. Es wird ferner vorausgesetzt, dass dort alle benötigten Partitionen wie „/“ oder „/boot“ bereits eingebunden sind.
# mount --rbind /dev /mnt/arch/dev # mount -t proc none /mnt/arch/proc # mount -o bind /sys /mnt/arch/sys # mount --bind /sys/firmware/efi/efivars /mnt/arch/sys/firmware/efi/efivars
# cp -L /etc/resolv.conf /mnt/arch/etc/resolv.conf
# chroot /mnt/arch /bin/bash # source /etc/profile
Enthalten in sys-apps/coreutils.
$ date -d @511571700
$ while true; do sleep 1; clear; date +%s; done
$ watch -n1 date +%s
$ date; date -s "now 120 min"
# dd if=/dev/sda of=backup.img
# dd if=/dev/sda2 of=home.img
Hat man eine einzelne Festplatten-Partition mit dd in ein Imagefile kopiert, kann man dieses Image relativ einfach über ein loop-Device mounten:
# mount -t <filesystem> -o loop,ro <Image-Dateiname> <Zielverzeichnis>
Ist jedoch von einer kompletten Festplatte mit mehreren Partitionen eine solche Kopie erstellt worden und man möchte einzelne Partitionen aus diesem Image mounten, so muss man genau wissen, wo diese Partitionen beginnen.
Angenommen, die kopierte Festplatte ist ein Hitachi-Microdrive mit 512 MB, hat zwei primäre Partitionen und einen MasterBootRecord (MBR) und wurde in das Image platte.img kopiert. Da beide Partitionen einzeln gemountet werden sollen, muss zunächst die genaue Position der Partition festgestellt werden. Das geht mit fdisk:
$ fdisk -l -u platte.image
Mit dem Argument -l bekommen wir von fdisk eine Ausgabe der Partitionstabelle und -u sorgt dafür, daß Anfang und Ende jeder Partition in Sektoren statt Zylindern angegeben wird. Man bekommt dann eine solche oder mindestens eine sehr ähnliche Ausgabe:
Platte platte.img: 0 MByte, 0 Byte 16 Köpfe, 63 Sektoren/Spuren, 0 Zylinder, zusammen 0 Sektoren Einheiten = Sektoren von 1 × 512 = 512 Bytes Gerät boot. Anfang Ende Blöcke Id System platte.img1 63 498959 249448+ c W95 FAT32 (LBA) platte.img2 499968 1052351 276192 83 Linux
Die Größen-Angaben von null Byte bei einem Image sollen nicht stören, wichtig ist die Angabe der Sektorengröße, hier 512 Byte. Die erste Partition, hier die FAT32-Partition, beginnt mit Sektor 63. Da jeder Sektor 512 Byte groß ist, rechnen wir nun den Speicherbereich aus, den wir am Anfang des Images überspringen müssen, um bei Sektor 63 anzukommen:
63 * 512 = 32256 Byte.
Diese 32256 Byte nehmen wir jetzt als Offset für ein loop-Device. Dieses wird mit losetup eingerichtet:
# losetup -o 32256 /dev/loop0 platte.bin
Danach kann dann dieses loop-Device gemountet werden:
# mount -t vfat -o ro /dev/loop0 /mnt
Am Ende sollte man das loop-Device wieder freigeben:
# losetup -d /dev/loop0
$ head -c<GROESSE><K,M.G> /dev/zero >datei.image
Besitzer - Gruppe - Alle
r - 4
w - 2
x - 1