blockdev --rereadpt /dev/sda
lsblk
Das lange unter Linux gebräuchliche MSDOS oder MBR Format kann man nur bei Festplatten unter 2TB verwenden. Für größere Datenträger, oder wenn man wie bei aktuellen Rechnern üblich eine UEFI Firmware an Stelle des BIOS vorfindet, sollte man für die Partitionstabelle GPT verwenden.
Tools:
util-linux
m | Hilfe |
d | Partition löschen |
n | neue Partition erstellen |
t | Typ der Partition setzen |
p | Partitionstabelle anzeigen |
w | geänderte Partitionstabelle speichern |
q | fdisk verlassen ohne zu speichern |
2 Gigibyte große Partition auf Festplatte /dev/sda
anlegen:
fdisk /dev/sda
Aktuelle Partitionstabelle anzeigen:
p
Neue Partition erstellen:
n
Partition als logische Partition erstellen (nur bei MSDOS/MBR):
l
Startblock auswählen: Bei der ersten Partition sollte hier Sektor 2048 oder ein Vielfaches davon stehen. Wenn die Sektorgröße 512 Bytes ist, dann liegt der Partitionsbeginn bei 1048576 Bytes (=1 MiB).
Größe angeben:
+2G
geänderte Partitionstabelle speichern:
w
parted
help | Hilfe |
rm | Partition löschen |
mklabel | neue Partitionstabelle erstellen |
mkpart | neue Partition erstellen |
set | Typ der Partition setzen |
Partitionstabelle anzeigen | |
quit | fdisk verlassen ohne zu speichern |
2 Gibibyte große Partition auf Festplatte /dev/sda
anlegen:
parted /dev/sda
Aktuelle Partitionierung ausgeben:
Neue Partition erstellen:
mkpart
Partition type? primary/logical?
l
File system type?
ext3
Start?
xxx
End?
xxx
Parted verlassen:
quit
sfdisk -d /dev/sda > part-table.txt
sfdisk /dev/sda < part-table.txt
nur für GPT Partitionen
sgdisk --backup=sda.gpt.bkup /dev/sda
sgdisk --load-backup=sda.gpt.bkup /dev/sda
geht nur bei identischer Festplatte
dd if=/dev/sda of=part-table.img bs=1 count=512
dd if=part-table.img of=/dev/sda bs=1 count=64 skip=446 seek=446
fdisk -l > partitionierung.txt
geht nur von Hand
gdisk -l > partitionierung.txt
geht nur von Hand
parted /dev/sda print > partitionierung.txt
geht nur von Hand
Test-Image erstellen und mounten:
fallocate -l 500M /tmp/zero.img
mkfs.ext4 /tmp/zero.img mkdir /mnt/img mount /tmp/zero.img /mnt/img
cp -a /usr/bin/tail /mnt/img chmod u+s /mnt/img/tail
Als Nutzer:
/mnt/img/tail /etc/shadow
Ist das SUID-Bit wirksam?
cp -a /usr/bin/tail /mnt/img /mnt/img/tail /etc/passwd
Ist /mnt/img/tail
ausführbar?
mknod /mnt/img/sda b 8 0 fdisk -l /mnt/img/sda
Ist der Zugriff auf das Device /mnt/img/sda
möglich?
Erstellen einer virtuellen Festplatte und vorbereiten für den Einsatz in einer VM
Pakete installieren:
parted qemu-img
parted qemu-utils
parted qemu-tools
Nicht in der Praxis
dd if=/dev/zero of=disc1 bs=1K count=0 seek=200M ls -lsh disc* losetup -f disc1 --show losetup -a
lsblk {fdisk,gdisk,parted} /dev/loopxx
partprobe partprobe /dev/loopxx
Virtuelle Festplatte erstellen:
qemu-img create /srv/vmdisk1.img 2G
parted /srv/vmdisk1.img
GPT-Partitionstabelle anlegen: (In der parted
Kommandozeile)
mklabel gpt
100 MiB - 1MiB (parted arbeitet mit festen Endwerten) Swap-Partition anlegen:
mkpart linux-swap 1MiB 100MiB
Daten-Partition anlegen:
mkpart ext4 100MiB 100%
GRUB BIOS Partition aktivieren:
set 1 bios_grub on
parted
verlassen:
quit
Partitionen aus der Image-Datei im System sichtbar machen:
losetup --show -f -P /srv/vmdisk1.img
Swap-Partition formatieren:
mkswap /dev/loop0p1
System/Datenpartition mit XFS für VM mit 2 vCPUs formatieren:
mkfs.xfs -d agcount=2 /dev/loop0p2
yumdownloader centos-release.x86_64 rpm -ihv --nodeps --root /mnt/loop centos-release-7-*.rpm install -b --suffix=.orig /etc/yum.repos.d/CentOS-Base.repo /mnt/loop/etc/yum.repos.d/CentOS-Base.repo yum -y --nogpg --releasever=7 --installroot=/mnt/loop install grub2 iproute tmux passwd procps-ng systemd yum grub2-install --root-directory=./ /dev/loop0
TODO: formatieren, vergrößern