Harde schijf in gebruik nemen (Linux)
Het lijkt nogal recht-toe-recht-aan te zijn, om een nieuwe schijf of SSD in gebruik te nemen. In de praktijk wil het wel eens tegenvallen. Dit artikel heeft betrekking op zowel interne primaire schijven of SSD's als op externe schijven/SSD's.
Grote plaatje
Tegenwoordig (zomer 2020) configureer ik schijven/SSD's inclusief GPT, GRUB en UEFI
Hoe het werkt
Dit lijken de stappen te zijn om een schijf in gebruik te nemen. Dit heeft vooral betrekking op externe schijven en USB-thumbdrives:
- Achterhaal device-id
- Umount de schijf
- Formatteer de hele schijf
- Definieer partitie(s)
- Formatteer partitie(s)
- Pas rechten aan
Zie de tweede casus uit juli 2020 hieronder: Dat is de meest zekere casus.
Achtergrond: Tools & concepten
- Disks: Oa. opgenomen in Linux Mint [1]
- GParted: Grafisch front-end voor Parted, voor bewerken van schijven en file systems. Het is opgenomen in oa. SystemRescueCd [2]
- GPT: Standaard voor partion tables en opvolger MBR: De GUID Partition Table (GPT) bevat informatie over partities op een device middels globally unique identifies (GUID's) en is onderdeel van de UEFI-standaard [3]
- GRUB: Boot loader: Een soort micro-OS dat zorgt dat je je juiste OS laadt, en opvolger van LILO. GRUB kan vooral goed overweg met multiboot- en multidisk-systemen. GRUB staat los van enig operating system. Meestal bevindt GRUB zich in de Linux-partitie, in /boot/grub en /etc/grub
- MBR: Master Boot Record is een boot sector op een harde schijf of SSD. Deze bevat informatie over partities, plus uitvoerbare code om operating systems te kunnen laden vanaf deze partities. MBR is opgevolgd door GUID Partition Table (GPT). Voor de uitvoerbare code (machine-coode), is er 434 tot 446 bytes beschikbaar. Meestal is dit te weinig voor een fatsoenlijke bootloader en daarom verwijst deze code meestal naar andere locaties op de harde schijf waar zich de eigenlijke boatloader bevindt: Lege ruimte tussen partities in, of partition boot sectors
- Parted: Commandline-utility voor het bewerken van schijven en file systems. Aka. GNU Parted. GParted is hetzelfde, maar dan met een grafische interface
- UEFI: Opvolger van BIOS: Softwarelaag tussen hardware en OS. UEFI kan doorgaans overweg met MBR- en GPT-harde schijven.
Casus: Nieuwe externe USB-schijf (feb. 2020)
Hoera! Een nieuwe USB-harde schijf die ik ga gebruiken als backup. Het is een 'traditionele' harde schijf, met echte harde schijven. Het kostte me de nodige moeite om een betrouwbare en actuele bron te vinden voor dit klusje. Het is deze tutorial van DigitalOcean.com geworden:
Schijf & filesysteem identificeren
df -TH
[4] geeft
/dev/sdb2 fuseblk 5,5T 281M 5,5T 1% /media/strompf/Seagate Expansion Drive
sudo fdisk -l
geeft voor dit device (sdb
):
Disk /dev/sdb: 5,5 TiB, 6001175125504 bytes, 11721045167 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 33553920 bytes Disklabel type: gpt Disk identifier: AFA37668-E7A1-488A-BF85-FE751F3572E6 Device Start End Sectors Size Type /dev/sdb1 34 262177 262144 128M Microsoft reserved /dev/sdb2 264192 11721043967 11720779776 5,5T Microsoft basic data Partition 1 does not start on physical sector boundary.
sudo parted -l
geeft:
Model: Seagate Expansion Desk (scsi) Disk /dev/sdb: 6001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 17,4kB 134MB 134MB Microsoft reserved partition msftres 2 135MB 6001GB 6001GB ntfs Basic data partition msftdata
Unmount
Je moet een gemounte schijf eerst unmounten, voor je 'm kunt formatteren. Dit deed ik in Nautilus. Het kan uiteraard ook in Bash [5].
Bepaal partition standard
Je hebt twee standaarden: GPT en MBR. Ik kies deze eerste:
sudo parted /dev/sdb mklabel gpt
Dit commando is binnen een seconde klaar.
Creëer partition
Maak een partitie aan, die de hele schijf beslaat:
sudo parted -a opt /dev/sdb mkpart primary ext4 0% 100%
Creëer filesystem
Dit commando was binnen een seconde klaar:
sudo mkfs.ext4 /dev/sdb
sudo parted -l
geeft nu:
Model: Seagate Expansion Desk (scsi) Disk /dev/sdb: 6001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 33,6MB 6001GB 6001GB primary
en lsblk
geeft nu:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 5,5T 0 disk └─sdb1 8:17 0 5,5T 0 part sda 8:0 0 931,5G 0 disk ├─sda2 8:2 0 1K 0 part ├─sda5 8:5 0 16G 0 part [SWAP] └─sda1 8:1 0 915,6G 0 part /
Maak bestandssysteem aan in deze partitie
Bestandssystemen defineer je op partities, niet op schijven. Dit was binnen een seconde klaar:
sudo mkfs.ext4 -L bu03 /dev/sdb1 mke2fs 1.42.13 (17-May-2015) /dev/sdb1 alignment is offset by 512 bytes. This may result in very poor performance, (re)-partitioning suggested. Creating filesystem with 1465116843 4k blocks and 183140352 inodes Filesystem UUID: 96998dda-c533-49d2-ab2a-8dea6b95f34f Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848, 512000000, 550731776, 644972544 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
Nieuwe situatie:
lsblk --fs NAME FSTYPE LABEL UUID MOUNTPOINT sdb └─sdb1 ext4 bu03 96998dda-c533-49d2-ab2a-8dea6b95f34f sda ├─sda2 ├─sda5 swap 770b0c79-cbec-48dd-aa7b-5f89b1817a16 [SWAP] └─sda1 ext4 7a6b8cd3-d38a-4c25-b875-27a93dfdc86c /
Na mounten in Nautilus:
lsblk --fs NAME FSTYPE LABEL UUID MOUNTPOINT sdb └─sdb1 ext4 bu03 96998dda-c533-49d2-ab2a-8dea6b95f34f /media/strompf/bu03 sda ├─sda2 ├─sda5 swap 770b0c79-cbec-48dd-aa7b-5f89b1817a16 [SWAP] └─sda1 ext4 7a6b8cd3-d38a-4c25-b875-27a93dfdc86c /
Casus: Externe drive opnieuw formatteren (juli 2020)
Dit betreft een oudere schijf die ik voor backups gebruik. Deze blijkt NTFS-geformatteerd te zijn. Voor ik deze ga gebruiken voor backups, wil ik daar ext4 van maken. Ik heb de hele procedure nog steeds niet scherp. Het was een beetje trial-and-error:
Device-ID achterhalen
Device-ID achterhaald muv. sudo fdisk -l
. Ik weet héél zeker dat dit /dev/sdb
is.
Unmount
Uiteraard. Gewoon via Nemo.
Formatteer hele schijf
Zie je wel: Je moet eerst het hele device formatteren. Ook wel erg logisch.
sudo mkfs.ext4 /dev/sdb mke2fs 1.45.5 (07-Jan-2020) Found a dos partition table in /dev/sdb Proceed anyway? (y,N) y Creating filesystem with 122096639 4k blocks and 30531584 inodes Filesystem UUID: 73c079c7-78fe-4f78-9d6f-abda0862ff56 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000 Allocating group tables: done Writing inode tables: done Creating journal (262144 blocks): done Writing superblocks and filesystem accounting information: done
Dit voelt goed. Oa. werkt sudo mkfs.ext4 -L bu01 /dev/sdb1
nu niet, en dat lijkt me logisch: Er zijn nog geen partities aangemaakt.
Creëer partitie
Het viel me eerder op, dat als ik niets doe, ik een schijf krijg met een ms-dos label. Volgens mij moet dat GPT zijn. Dat vind je hier oa. terug:
sudo fdisk /dev/sdb Welcome to fdisk (util-linux 2.34). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. The old ext4 signature will be removed by a write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0x0350e6a2. Command (m for help): g Created a new GPT disklabel (GUID: 5781D674-8388-E141-BA39-09619FC0B45C). The old ext4 signature will be removed by a write command. Command (m for help): n Partition number (1-128, default 1): First sector (2048-976773082, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-976773082, default 976773082): Created a new partition 1 of type 'Linux filesystem' and of size 465,8 GiB. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
Formatteer partitie
sudo mkfs.ext4 -L bu01 /dev/sdb1 mke2fs 1.45.5 (07-Jan-2020) Creating filesystem with 122096379 4k blocks and 30531584 inodes Filesystem UUID: 0b6cf6c1-fc29-4f50-8b6d-b64cb5dc5686 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000 Allocating group tables: done Writing inode tables: done Creating journal (262144 blocks): done Writing superblocks and filesystem accounting information: done
Eindresultaat
Output sudo fdisk -l
voor deze schijf:
Disk /dev/sdb: 465,78 GiB, 500107835392 bytes, 976773116 sectors Disk model: Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 5781D674-8388-E141-BA39-09619FC0B45C Device Start End Sectors Size Type /dev/sdb1 2048 976773082 976771035 465,8G Linux filesystem
chown & chgrp?
Eih, ik kan niet schrijven naar deze schijven: root is eigenaar. Da's niet moeilijk aan te passen, maar wel vreemd. Of misschien niet: Alle voorgaande commando's zijn met sudo
uitgevoerd. Aanpassingen (ik betwijfel of -R
nodig is):
sudo chown -R jeroen bu01 sudo chgrp -R jeroen bu01
Casus: Externe drive opnieuw formatteren (juli 2020 - 2)
Dit betreft een andere harde schijf dan hiervoor. De procedure behandel ik hier iets korter:
Achterhaal device-ID
Unmount schijf
Formatteer hele schijf
sudo mkfs.ext4 /dev/sdb
Creëer partitie
sudo fdisk /dev/sdb Welcome to fdisk (util-linux 2.34). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. The old ext4 signature will be removed by a write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0xe50bfd3f. Command (m for help): m Help: DOS (MBR) a toggle a bootable flag b edit nested BSD disklabel c toggle the dos compatibility flag Generic d delete a partition F list free unpartitioned space l list known partition types n add a new partition p print the partition table t change a partition type v verify the partition table i print information about a partition Misc m print this menu u change display/entry units x extra functionality (experts only) Script I load disk layout from sfdisk script file O dump disk layout to sfdisk script file Save & Exit w write table to disk and exit q quit without saving changes Create a new label g create a new empty GPT partition table G create a new empty SGI (IRIX) partition table o create a new empty DOS partition table s create a new empty Sun partition table Command (m for help): g Created a new GPT disklabel (GUID: 3F54C89D-DCDE-0D4D-A840-DFE824219BDC). The old ext4 signature will be removed by a write command. Command (m for help): n Partition number (1-128, default 1): First sector (2048-1953519582, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-1953519582, default 1953519582): Created a new partition 1 of type 'Linux filesystem' and of size 931,5 GiB. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
Formatteer partitie
sudo mkfs.ext4 -L bu02 /dev/sdb1
chgown & chgrp
Net als eerder, is root
eigenaar van de schijf. Aanpassen:
sudo chown -R jeroen /media/jeroen/bu02 sudo chgrp -R jeroen /media/jeroen/bu02
P.s.: Wel handig om -R
te gebruiken: Dan kun je daarna de map lost+found
verwijderen.
Eindresultaat
sudo fdisk -l Disk /dev/sdb: 931,52 GiB, 1000202043392 bytes, 1953519616 sectors Disk model: Elements 1042 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 3F54C89D-DCDE-0D4D-A840-DFE824219BDC Device Start End Sectors Size Type /dev/sdb1 2048 1953519582 1953517535 931,5G Linux filesystem
Keywords
Zoektermen waarop ik dit artikel zou kunnen zoeken, die echter niet in dit artikel voorkomen:
- Format hard disk
- Format harddisk
- Format harde schijf
- Formatteren harddisk
- Formatteren harde schijf
Zie ook
Bronnen
- https://www.digitalocean.com/community/tutorials/how-to-partition-and-format-storage-devices-in-linux
- https://www.techwalla.com/articles/how-to-format-a-hard-drive-in-linux
- https://en.wikipedia.org/wiki/GParted
- https://en.wikipedia.org/wiki/GNOME_Disks
- https://superuser.com/questions/1164867/formatting-a-new-disk-and-mbr
- https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface
- https://en.wikipedia.org/wiki/GUID_Partition_Table
- https://www.linuxjournal.com/article/4622
- https://unix.stackexchange.com/questions/395950/fdisk-partition-contains-a-ntfs-signature-remove-it