Harde schijf in gebruik nemen (Linux)

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

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

Procedure

Dit lijkt de hele procedure te zijn:

  • Partitioneren: Bv. met fdisk
  • Formatteer partities: Bv. met mkfs
  • Label partities: Bv. met e2label

Voor externe devices, doorloop ik deze stappen expliciet. Tijdens de installatie van een OS, gebeurt dit vooral impliciet.

Tools & concepten

  • Disks [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

fdisk 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 blijkbaar 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 /

Zie ook

Bronnen