Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Festplatten partitionieren
siehe auch:
FreeBSD
> ls -lha /dev/ada10* crw-r----- 1 root operator 0xd6 Feb 21 01:07 /dev/ada10 crw-r----- 1 root operator 0xdd Feb 21 01:07 /dev/ada10p1 crw-r----- 1 root operator 0xdf Feb 21 01:07 /dev/ada10p9
> fdisk /dev/ada10
******* Working on device /dev/ada10 *******
parameters extracted from in-core disklabel are:
cylinders=5814021 heads=16 sectors/track=63 (1008 blks/cyl)
Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=5814021 heads=16 sectors/track=63 (1008 blks/cyl)
Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 238 (0xee),(EFI GPT)
start 1, size 4294967295 (2097151 Meg), flag 0
beg: cyl 1023/ head 255/ sector 63;
end: cyl 1023/ head 255/ sector 63
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
zusätzliches Laufwerk für FreeBSD 12 einrichten
# gpart show -l # gpart show -lp
Laufwerk mit Gerätenamen ansprechen
Dieses ist die älteste methode, die garantiert immer funktioniert. Wenn man aber recht viele Platten im System hat, ist eine Identifikation recht schwierig. Man wird sich also etwas anstrengen müssen, wenn man eine defekte Platte hat und die richtige tauschen will.
Ziel:
Auf einer großen neuen Festplatte sollen zwei Partitionen angelegt werden.
Eine für den Pool "Filme" und eine für den Pool "Serien".
Hierbei ist darauf zu achen, dass die Größe passt! Die neuen Partitionen dürfen auf garkeinen Fall zu klein sein, weil sie sonst nicht in den Pool eingebunden werden können.
evtl. vorhandene GPT-Partitionen werden entfernt:
gpart destroy -F /dev/ada8 gpart show -l ada8
jetzt wird die Partitionstabelle angelegt:
gpart create -s gpt ada8 gpart show -l ada8
die ersten 4GB verwenden wir für die Partition für die Filme
gpart add -t freebsd-zfs -l filme -s 4G -b 40 ada8
die zweite Partition bekommt den Rest für die Serien:
gpart add -t freebsd-zfs -l serien ada8 gpart show -l ada8
hier werden die Partitionen an die jeweiligen Pools angeheftet:
zpool attach filme ada7 ada8p1 zpool attach serien ada4 ada8p2 zpool list
Laufwerk mit seiner Seriennummer ansprechen
Dieses ist (meiner Meinung nach) die eleganteste. Jede Festplatte hat eine eindeutige Seriennummer, die man auch für die Replamation benötigt. Sie steht i.d.R. auch gut sichtbar auf einer Seite der Platte, wodurch man diese auch im eingebauten Zustand gut ablesen kann. Wenn also eine Platte defekt ist und ausgetauscht werden muss, merkt man sich nur die letzten 4 Stellen der Gerätebezeichnung im System und sucht dann auf den Platten nach dieser Zeichenfolge. Das ist sehr praktisch und erspart einem, zeitaufwendige Detektivarbeit.
Auf einer großen neuen Festplatte sollen zwei Partitionen angelegt werden. Eine für den Pool "Filme" und eine für den Pool "Serien". Hierbei ist darauf zu achen, dass die Größe passt! Die neuen Partitionen dürfen auf garkeinen Fall zu klein sein, weil sie sonst nicht in den Pool eingebunden werden können.
evtl. vorhandene GPT-Partitionen werden entfernt:
gpart destroy -F /dev/diskid/DISK-WD-WXB1HB4H9AHF gpart show -l diskid/DISK-WD-WXB1HB4H9AHF
jetzt wird die Partitionstabelle angelegt:
gpart create -s gpt diskid/DISK-WD-WXB1HB4H9AHF gpart show -l diskid/DISK-WD-WXB1HB4H9AHF
die ersten 4GB verwenden wir für die Partition für die Filme
gpart add -t freebsd-zfs -l filme -s 4G -b 40 diskid/DISK-WD-WXB1HB4H9AHF
die zweite Partition bekommt den Rest für die Serien:
gpart add -t freebsd-zfs -l serien diskid/DISK-WD-WXB1HB4H9AHF gpart show -l diskid/DISK-WD-WXB1HB4H9AHF
hier werden die Partitionen an die jeweiligen Pools angeheftet:
zpool attach filme diskid/DISK-PL1331LAGG7GKH diskid/DISK-WD-WXB1HB4H9AHFp1 zpool attach serien diskid/DISK-1SHNABYZ diskid/DISK-WD-WXB1HB4H9AHFp2 zpool list
alle Eigenschaften eines Pools ansehen
> zfs get all filme NAME PROPERTY VALUE SOURCE filme type filesystem - filme creation Mo. Sep. 25 22:43 2017 - filme used 3,37T - filme available 143G - filme referenced 3,37T - filme compressratio 1.00x - filme mounted yes - filme quota none default filme reservation none default filme recordsize 128K default filme mountpoint /extern02 default filme sharenfs off default filme checksum on default filme compression off default filme atime on default filme devices on default filme exec on default filme setuid on default filme readonly off default filme jailed off default filme snapdir hidden default filme aclmode discard default filme aclinherit restricted default filme createtxg 1 - filme canmount on default filme xattr off temporary filme copies 1 default filme version 5 - filme utf8only off - filme normalization none - filme casesensitivity sensitive - filme vscan off default filme nbmand off default filme sharesmb off default filme refquota none default filme refreservation none default filme guid 1632609755814299787 - filme primarycache all default filme secondarycache all default filme usedbysnapshots 0 - filme usedbydataset 3,37T - filme usedbychildren 5,32M - filme usedbyrefreservation 0 - filme logbias latency default filme dedup off default filme mlslabel - filme sync standard default filme dnodesize legacy default filme refcompressratio 1.00x - filme written 3,37T - filme logicalused 3,37T - filme logicalreferenced 3,37T - filme volmode default default filme filesystem_limit none default filme snapshot_limit none default filme filesystem_count none default filme snapshot_count none default filme redundant_metadata all default
Boot-Laufwerk für FreeBSD 12 partitionieren
Die Einzelschritte können auch aus der Datei /var/log/bsdinstall_log ab dem Schlagwort "zfs_create_boot" abgelesen werden.
Festplatte säubern
# gpart destroy -F "ada0" ada0 destroyed # graid delete "ada0" graid: Array 'ada0' not found. # zpool labelclear -f "/dev/ada0" # gpart create -s gpt "ada0" ada0 created # gpart destroy -F "ada0"
GPT-Partitionierung von dem verbliebenen Laufwerk kopieren
gpart backup ada1 > /tmp/g.txt vi /tmp/g.txt cat /tmp/g.txt | gpart restore ada0
Es sollten hier die Partitionsnamen geändert werden, beispielsweise so:
gptboot0 → gptboot2
swap0 → swap2
zfs0 → zfs2
Dann kann man z.B. hier auch die Unterschiede erkennen:
# ls -lha /dev/gpt/swap* crw-r----- 1 root operator 0x94 3 Feb. 15:12 /dev/gpt/swap0 crw-r----- 1 root operator 0xf8 4 Feb. 18:12 /dev/gpt/swap2 # swapinfo Device 1K-blocks Used Avail Capacity /dev/gpt/swap0 8388608 48864 8339744 1% /dev/gpt/swap2 8388608 10304 8378304 0% Total 16777216 59168 16718048 0%
eine frische GPT-Partitionierung vornehmen
In diesem Beispiel wird eine WD 1003FBYX (WD Re) aus dem Jahre 2013 partitioniert.
GPT-Tabelle anlegen > gpart create -s gpt ada0 Boot-Partition anlegen > gpart add -t freebsd-boot -l gptboot0 -b 40 -s 512K ada0 Boot-Kode schreiben > gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0 SWAP-Partition anlegen > gpart add -t freebsd-swap -l swap0 -s 8G ada0 FreeBSD-ZFS-Partition anlegen > gpart add -t freebsd-zfs -l zfs0 ada0 Ergebnis zeigen > gpart show -l ada0 > gpart backup ada0 GPT 128 1 freebsd-boot 40 1024 gptboot0 2 freebsd-swap 1064 16777216 swap0 3 freebsd-zfs 16778280 1936746848 zfs0
in das System und den ZFS-Pool einbinden
alle drei Partitionen auf dem ROOT-Laufwerk, müssen separat betrachtet werden:
# ls -lha /dev/ada10* crw-r----- 1 root operator 0xe6 4 Feb. 10:23 /dev/ada0 crw-r----- 1 root operator 0xf5 4 Feb. 18:19 /dev/ada0p1 - BootCode (ungespiegelt) crw-r----- 1 root operator 0xf4 4 Feb. 18:12 /dev/ada0p2 - SWAP (ungespiegelt) crw-r----- 1 root operator 0xf6 4 Feb. 18:12 /dev/ada0p3 - ZFS-Pool für das BS (gespiegelt)
# echo "/dev/gpt/swap3 none swap sw 0 0" >> /etc/fstab
# swapon /dev/gpt/swap3
# swapinfo
Device 1K-blocks Used Avail Capacity
/dev/gpt/swap0 8388608 50040 8338568 1%
/dev/gpt/swap3 8388608 11848 8376760 0%
Total 16777216 61888 16715328 0%
# zpool attach zroot gptid/3d5a4e6c-14c4-11e4-bc13-bcaec58cba70 ada0p3
# zpool status zroot
pool: zroot
state: ONLINE
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scan: resilver in progress since Mon Feb 4 18:18:05 2019
304G scanned at 467M/s, 1,28G issued at 36,4M/s, 304G total
1,27G resilvered, 0,42% done, 0 days 02:22:07 to go
config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
gptid/3d5a4e6c-14c4-11e4-bc13-bcaec58cba70 ONLINE 0 0 1
diskid/DISK-WD-WMC6M0H02SPU ONLINE 0 0 0
ada0p3 ONLINE 0 0 0
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
partcode written to ada0p1
bootcode written to ada0
Linux
große Datenträger partitionieren
das Programm "partprobe" installieren:
> apt install parted
Partitionstabelle neu einlesen:
> partprobe
auf einer Fabrikneuen Festplatte ein GPT-Label anlegen:
> parted /dev/sdb (parted) mklabel gpt (parted) unit % (parted) mkpart primary 0% 100% (parted) print (parted) quit
> mkfs -t ext4 -m 0 -L mysql /dev/sdb1 > mkdir /var/lib/mysql > echo "/dev/sdb1 /var/lib/mysql ext4 defaults 2 2" >> /etc/fstab > mount /var/lib/mysql > df -h
oder so:
parted -s /dev/sdb mklabel gpt parted -s /dev/sdb unit mib mkpart primary 1 100% parted /dev/sdb print mkfs -t ext4 -m 0 -L LW-NAME /dev/sdb1
siehe auch: Partitionen größer als 2TB anlegen
per Skript partitionieren
sfdisk
- sfdisk - skriptingfähige Variante von fdisk (fixed disk)
> aptitude install util-linux
Platten-Größe ausgeben (in Sektoren):
> sfdisk -s /dev/sda 41943040
Partitionstabelle ausgeben (kann auch gesichert werden):
> sfdisk -d /dev/sda
Zum partitionieren, muss man die Partitionsdaten zeilenweise eingeben.
Jede Zeile generiert dabei eine Partition.
die Spalten sind durch Komma getrennt und haben folgende Bedeutungen:
- Spalte:
Startwert in Zylinder - Spalte:
Größe in Zylinder - Spalte:
PartitionstypL→ Linux-Partition von Typ 83S→ Swap-Partition von Typ 82E→ erweiterete DOS-Partition von Typ 5X→ erweiterete Linux-Partition von Typ 85
- Spalte:
Boot-Flag*→ bootfähig-→ nicht bootfähig
diese 40GB-Platte wird mit drei Partitionen versehen:
> sfdisk -s /dev/sda 41943040 > echo -e "0,3000,L,*\n3000,2000,L,-\n5000,200,S,-\n" | sfdisk /dev/sda > sfdisk -d /dev/sda # partition table of /dev/sda unit: sectors /dev/sda1 : start= 1, size= 48194999, Id=83, bootable /dev/sda2 : start= 48195000, size= 32130000, Id=83 /dev/sda3 : start= 80325000, size= 3213000, Id=82 /dev/sda4 : start= 0, size= 0, Id= 0
sgdisk
- sgdisk - skriptingfähige Variante von gdisk (fdisk für GPT [GUID Partitionstabelle])
Programm installieren
> aptitude install gdisk
Partitions-Typen anzeigen (wird mit "-t" übergeben):
> sgdisk -L 0700 Microsoft basic data 0c01 Microsoft reserved 2700 Windows RE 4100 PowerPC PReP boot 4200 Windows LDM data 4201 Windows LDM metadata 7501 IBM GPFS 7f00 ChromeOS kernel 7f01 ChromeOS root 7f02 ChromeOS reserved 8200 Linux swap 8300 Linux filesystem 8301 Linux reserved 8302 Linux /home 8400 Intel Rapid Start 8e00 Linux LVM a500 FreeBSD disklabel a501 FreeBSD boot a502 FreeBSD swap a503 FreeBSD UFS a504 FreeBSD ZFS a505 FreeBSD Vinum/RAID a580 Midnight BSD data a581 Midnight BSD boot a582 Midnight BSD swap a583 Midnight BSD UFS a584 Midnight BSD ZFS a585 Midnight BSD Vinum a800 Apple UFS a901 NetBSD swap a902 NetBSD FFS a903 NetBSD LFS a904 NetBSD concatenated a905 NetBSD encrypted a906 NetBSD RAID ab00 Apple boot af00 Apple HFS/HFS+ af01 Apple RAID af02 Apple RAID offline af03 Apple label af04 AppleTV recovery af05 Apple Core Storage be00 Solaris boot bf00 Solaris root bf01 Solaris /usr & Mac Z bf02 Solaris swap bf03 Solaris backup bf04 Solaris /var bf05 Solaris /home bf06 Solaris alternate se bf07 Solaris Reserved 1 bf08 Solaris Reserved 2 bf09 Solaris Reserved 3 bf0a Solaris Reserved 4 bf0b Solaris Reserved 5 c001 HP-UX data c002 HP-UX service ea00 Freedesktop $BOOT eb00 Haiku BFS ed00 Sony system partitio ef00 EFI System ef01 MBR partition scheme ef02 BIOS boot partition fb00 VMWare VMFS fb01 VMWare reserved fc00 VMWare kcore crash p fd00 Linux RAID
GPT, MBR und alle Partitionen löschen:
> sgdisk -Z /dev/sda
eine Partition auf dem gesammten freien Platz der /dev/sda anlegen:
> sgdisk -n 0:0:+ /dev/sda
der ersten Partition einen Namen geben bzw. den Namen ändern (der Name darf max. nur 23 Zeichen lang sein):
> sgdisk -c 1:"der komplette HDD-Platz" /dev/sda
Partitionstabelle anzeigen
> sgdisk -p /dev/sda Disk /tmp/test.img: 83886080 sectors, 40.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): BA40255D-D425-4598-ADA3-8187CF621D1A Partition table holds up to 128 entries First usable sector is 34, last usable sector is 83886046 Partitions will be aligned on 2048-sector boundaries Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name 1 2048 83886046 40.0 GiB 8300 der komplette HDD-Platz
alle Partitionen löschen:
> sgdisk -o /dev/sda
eine Partition (1GB) auf /dev/sda anlegen:
> sgdisk -n 0:0:+1G /dev/sda
nocheine Partition (3GB) auf /dev/sda anlegen:
> sgdisk -n 0:0:+3G /dev/sda
nocheine Partition (9GB) auf /dev/sda anlegen:
> sgdisk -n 0:0:+9G /dev/sda
nocheine Partition (Rest) auf /dev/sda anlegen:
> sgdisk -n 0:0:+26G /dev/sda
Partitionstabelle anzeigen:
> sgdisk -p /dev/sda ... Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB 8300 2 2099200 8390655 3.0 GiB 8300 3 8390656 27265023 9.0 GiB 8300 4 27265024 81790975 26.0 GiB 8300
Partitionen einzeln löschen:
> sgdisk -d 1 /dev/sda > sgdisk -d 2 /dev/sda > sgdisk -d 3 /dev/sda > sgdisk -d 4 /dev/sda
1. Partition (1GB) auf /dev/sda anlegen:
> sgdisk -n 1:0:+1G /dev/sda
2. Partition (3GB) auf /dev/sda anlegen:
> sgdisk -n 2:0:+3G /dev/sda
3. Partition (9GB) auf /dev/sda anlegen:
> sgdisk -n 3:0:+9G /dev/sda
4. Partition (Rest) mit Namen auf /dev/sda anlegen:
> sgdisk -n 4:0:+ -c 4:"der restliche Platz" /dev/sda
Partitionstabelle anzeigen:
> sgdisk -p /dev/sda ... Number Start (sector) End (sector) Size Code Name 1 2048 2099199 1024.0 MiB 8300 2 2099200 8390655 3.0 GiB 8300 3 8390656 27265023 9.0 GiB 8300 4 27265024 83886046 27.0 GiB 8300 der restliche Platz
Infos zur 1. Partition anzeigen:
> sgdisk -i 1 /dev/sda Partition GUID code: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (Linux filesystem) Partition unique GUID: 3DF69C8A-20C0-4C6C-9EC6-FDB680B37118 First sector: 2048 (at 1024.0 KiB) Last sector: 2099199 (at 1.0 GiB) Partition size: 2097152 sectors (1024.0 MiB) Attribute flags: 0000000000000000 Partition name: ''
Display current sector alignment value
> sgdisk -D /dev/sda 2048
Convert an MBR or BSD disklabel disk to a GPT disk (MBR → GPT):
> sgdisk -g /dev/sda
Convert disk from GPT to MBR form (GPT → MBR):
> sgdisk -m /dev/sda
