====== Festplatten partitionieren ====== siehe auch: * [[::Festplatten]] * [[::Festplatten partitionieren]] * [[::Freebsd:FreeBSD - Festplatten]] * [[::FreeBSD:ZFS]] * [[::FreeBSD:ZFS#Boot-Pool]] * [[::Festplatten partitionieren#zusätzliches Laufwerk für FreeBSD 12 einrichten]] * [[::Festplatten partitionieren#Boot-Laufwerk für FreeBSD 12 partitionieren]] ===== 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: The data for partition 3 is: The data for partition 4 is: ==== 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 -p /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 echo "LABEL=LW-NAME /MPNAME ext4 defaults 0 0" >> /etc/fstab siehe auch: [[::Hilfsprogramme des Dateisystems#Partitionen größer als 2TB anlegen]] vergrößern: apt install parted parted /dev/vda (parted) unit GB (parted) p (parted) resizepart NUMBER END resize2fs -p /dev/vda1 ==== SD-Karte partitionieren ==== das Programm "partprobe" installieren: > apt install parted Partitionstabelle neu einlesen: > partprobe auf einer Fabrikneuen Festplatte ein GPT-Label anlegen: > parted /dev/sdb (parted) p (parted) rm 1 (parted) p (parted) unit % (parted) mkpart primary 0% 100% (parted) p (parted) q === SD-Karte formatieren === bei kleineren SD-Karten: mkdosfs /dev/sdb1 -F16 oder bei größeren SD-Karten: mkdosfs /dev/sdb1 -F32 === Eine GPT-Partition vergrößern === * [[https://www.tecmint.com/parted-command-to-create-resize-rescue-linux-disk-partitions/|8 Linux ‘Parted’ Commands to Create, Resize and Rescue Disk Partitions]] * **5. Resize Linux Disk Partition** * ''%%parted /dev/vdb%%'' * ''%%(parted) unit % %%'' * ''%%(parted) print%%'' * ''%%(parted) resizepart%%'' * ''%%Partition number? 1%%'' * ''%%End? [50.0%]? 100%%%'' * ''%%(parted) print%%'' * bei "ext4": ''%%e2fsck -yFf /dev/vdb1%%'' * bei "ext4": ''%%resize2fs /dev/vdb1%%'' ==== per Skript partitionieren ==== === sfdisk === * [[http://wiki.ubuntuusers.de/fdisk#sfdisk|sfdisk]] - skriptingfähige Variante von **fdisk** (**f**ixed **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: ''Partitionstyp'' - **''L''** -> Linux-Partition von Typ 83 - **''S''** -> Swap-Partition von Typ 82 - **''E''** -> erweiterete DOS-Partition von Typ 5 - **''X''** -> 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 === * [[http://wiki.ubuntuusers.de/gdisk#sgdisk|sgdisk]] - skriptingfähige Variante von **gdisk** (f**disk** für **G**PT [__G__UID __P__artitions__t__abelle]) 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