Aceste exerciții trebuie făcute de multe ori, astfel încât să nu aveți absolut deloc ezitări în momentul execuției lor. Atașarea permanentă a unui device la un sistem Linux se face editând corespunzător fișierul /etc/fstab.
Pentru laboratoarele de partiționare, recomand o mașină virtuală cu 2 sau 3 discuri virtuale suplimentare atașate:
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 4.3G 0 rom vda 252:0 0 20G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] vdb 252:16 0 1G 0 disk vdc 252:32 0 1G 0 disk vdd 252:48 0 1G 0 disk
Înainte de a începe, vreau să reamintesc câteva aspecte esențiale. În prezent, există 2 tipuri de tabele de partiții: MBR (Master Boot Record) folosit de BIOS (Basic Input and Output) și GPT (Globally Unique Disk Identifier Partition Table) folosit de UEFI (Unified Extensible Firmware Interface).
În schema MBR putem avea maxim 4 partiții primare (dacă vrem mai multe partiții pe un hard disk, ultima partiție va fi extinsă, iar în interiorul său putem adăuga mai multe partiții logice), dimensiunea maximă a fiecărei partiții fiind de 2TB. Dacă MBR-ul este corupt (da, se poate întâmpla foarte ușor), întregul disc devine de necitit.
În schema GPT, putem avea maxim 128 de partiții primare pe un disc, dimensiunea maximă a fiecărei partiții fiind de 9,4 ZB (zebibytes) - dispare, astfel, necesitatea partiției extinse. GPT stochează un backup al tabelei de partiții, astfel încât, în cazul în care tabela de partiții primară este coruptă, aceasta să poată fi recuperată din backup, accesarea și citirea discului nefiind afectată.
Pentru partiționare, cele mai ușor de folosit comenzi sunt fdisk
și gdisk
- prima este pentru schema de partiționare MBR, iar a doua pentru GPT. Utilizarea lor este asemănătoare, astfel încât, dacă învățați să lucrați cu fdisk
, nu veți avea probleme nici cu gdisk
.
Acestea fiind spuse, să începem!
1. Creați o partiție de 200 MB pe discul /dev/vdd.
Vom lista partițiile existente (în cazul în care acestea există):
# fdisk -l /dev/vdd
Facem partiția cerută cu fdisk:
# fdisk /dev/vdd
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xe37224f3.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-2097151, default 2048): ENTER
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +200M
Partition 1 of type Linux and of size 200 MiB is set
Command (m for help): p
Disk /dev/vdd: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xe37224f3
Device Boot Start End Blocks Id System
/dev/vdd1 2048 411647 204800 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
La finalul oricărei partiționări, vom da comanda partprobe
pentru a informa sistemul de operare despre modificarea tabelei de partiții, după care vom lista din nou discurile și vom verifica existența partiției nou-createȘ
# partprobe # lsblk [...] vdd 252:48 0 1G 0 disk └─vdd1 252:49 0 200M 0 part vde 252:64 0 1G 0 disk
2. Creați un sistem de fișiere XFS pe această partiție.
# mkfs -t xfs /dev/vdd1
Verificăm:
# file -s /dev/vdd1 /dev/vdd1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
3. Etichetați partiția nou creată (/dev/vdd1) cu eticheta "MyXFS".
Fiind un sistem de fișiere XFS, vom folosi comanda xfs_admin:
- vom afișa eticheta curentă (observăm că nu există nicio etichetă):
# xfs_admin -l /dev/vdd1 label = ""
- aplicăm exticheta cerută:
# xfs_admin -L "MyXFS" /dev/vdd1 writing all SBs new label = "MyXFS"
- verificăm eticheta aplicată:
# xfs_admin -l /dev/vdd1 label = "MyXFS"
4. Creați o nouă partiție pe discul /dev/vdd, cu mărimea de 300MB. Formatați-o EXT4 și aplicați-i eticheta "MyEXT4".
Pentru această cerință vom repeta pașii de mai sus, cu mici modificări: la partiționare, vom avea grijă să specificăm mărimea cerută (+300M), iar formatarea o vom face cu comanda mkfs.ext4.
# fdisk /dev/vdd
Comanda lsblk
ne va afișa:
vdd 252:48 0 1G 0 disk ├─vdd1 252:49 0 200M 0 part └─vdd2 252:50 0 300M 0 part
Formatăm ext4 partiția /dev/vdd2:
# mkfs -t ext4 /dev/vdd2
Verificăm:
# file -s /dev/vdd2 /dev/vdd2: Linux rev 1.0 ext4 filesystem data, UUID=22787aef-917f-45b8-887c-1deb0021aead
Aplicăm eticheta cerută folosind ori comanda tune2fs
, ori e2label
:
# tune2fs -L "MyEXT4" /dev/vdd2
SAU:
# e2label /dev/vdd2 "MyEXT4"
Verificăm noua etichetă aplicată:
# e2label /dev/vdd2 MyEXT4
5. Montați permanent sistemul de fișiere MyXFS în directorul /mnt/xfs (folosiți UUID - Universally Unique IDentifier), iar sistemul de fișiere MyEXT4 în directorul /mnt/ext4.
Despre fișierul /etc/fstab am mai scris aici.
# mkdir -p /mnt/{xfs,ext4}
Vom afișa UUID-ul pentru sistemul de fișiere XFS:
# blkid # blkid | grep vdd1 | awk '{print $3}' UUID="505d7ec2-6302-4f3a-a60a-2cef855d652c"
Copiem acest UUID în /etc/fstab astfel:
# blkid | grep vdd1 | awk '{print $3}' >> /etc/fstab
Edităm fișierul /etc/fstab, astfel încât cele 2 linii adăugate să arate ca mai jos (prima linie este pentru sistemul de fișiere XFS montat în /mnt/xfs, iar a doua pentru sistemul de fișiere ext4 montat în /mnt/ext4):
# vi /etc/fstab UUID=505d7ec2-6302-4f3a-a60a-2cef855d652c /mnt/xfs xfs defaults 0 0 /dev/vdd2 /mnt/ext4 ext4 defaults 0 0
SAU a doua partiție poate fi montată după etichetă, ca mai jos:
LABEL=MyEXT4 /mnt/ext4 ext4 defaults 0 0
Salvăm și facem verificarea dând comanda de mai jos (montează tot ceea ce apare în /etc/fstab):
# mount -a
Dacă nu apare nicio eroare, verificăm montarea celor 2 partiții:
# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/vdd1 xfs 197M 11M 187M 6% /mnt/xfs /dev/vdd2 ext4 283M 2.1M 262M 1% /mnt/ext4
6. Creați o nouă partiție pe spațiul rămas liber pe discul /dev/vdd și montați-o permanent ca swap folosind UUID.
Verificăm swap-ul existent:
# free -m total used free shared buff/cache available Mem: 3950 136 3668 8 144 3601 Swap: 2568 0 2568
Verificăm partițiile care, în acest moment, sunt montate ca swap în sistem:
# swapon -s Filename Type Size Used Priority /dev/vdb6 partition 533500 0 -2 /dev/dm-1 partition 2097148 0 -3
Facem o nouă partiție pe /dev/vdd și vom folosi întreg spațiul rămas liber. Pașii de partiționare sunt aproape identici, cu deosebirea că TREBUIE să aplicăm codul 82 (Linux Swap) partiției nou-create. Urmăriți mai jos (voi marca ceea ce trebuie făcut altfel în acest caz):
# fdisk /dev/vdd Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/vdd: 1073 MB, 1073741824 bytes, 2097152 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xe37224f3 Device Boot Start End Blocks Id System /dev/vdd1 2048 411647 204800 83 Linux /dev/vdd2 411648 1026047 307200 83 Linux Command (m for help): n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): p Partition number (3,4, default 3): ENTER First sector (1026048-2097151, default 1026048): ENTER Using default value 1026048 Last sector, +sectors or +size{K,M,G} (1026048-2097151, default 2097151): ENTER (folosește tot spațiul rămas) Using default value 2097151 Partition 3 of type Linux and of size 523 MiB is set Command (m for help): t Partition number (1-3, default 3): 3 Hex code (type L to list all codes): L Hex code (type L to list all codes): 82 Changed type of partition 'Linux' to 'Linux swap / Solaris' Command (m for help): p Device Boot Start End Blocks Id System /dev/vdd1 2048 411647 204800 83 Linux /dev/vdd2 411648 1026047 307200 83 Linux /dev/vdd3 1026048 2097151 535552 82 Linux swap / Solaris Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table.
Nu uitați de comanda partprobe
la final.
Marcăm noua partiție ca swap:
# mkswap /dev/vdd3 Setting up swapspace version 1, size = 535548 KiB no label, UUID=85a8f830-5463-4b96-901d-0efd48e791c3
Copiem UUID-ul noii partiții în fstab pentru a adăuga rândul aferent ei:
- copiem întreg rândul cu UUID-ul noii partiții, urmând să-l edităm în fstab
# blkid | grep vdd3 >> /etc/fstab
- SAU copiem doar UUID-ul (este metoda preferată de mine)
# blkid | grep vdd3 | awk '{print $2}' >> /etc/fstab
Edităm fișierul /etc/fstab, iar linia cporespunzătoare noii partiții swap va arăta ca mai jos:
# vi /etc/fstab UUID=85a8f830-5463-4b96-901d-0efd48e791c3 swap swap defaults 0 0
Montăm ca swap partiția /dev/vdd3 marcată în /etc/fstab:
# swapon -a
Afișăm toate partițiile montate ca swap (observăm că, în plus față ceea ce era anterior, acum avem și partiția /dev/vdd3):
# swapon -s Filename Type Size Used Priority /dev/vdb6 partition 533500 0 -2 /dev/dm-1 partition 2097148 0 -3 /dev/vdd3 partition 535548 0 -4
Verificăm totalul memoriei swap (observăm că swap-ul este mărit exact cu dimensiunea partiției /dev/vdd3):
[root@localhost ~]# free -m total used free shared buff/cache available Mem: 3950 137 3650 8 162 3592 Swap: 3091 0 3091
Acum, dacă nu am avut erori după comenzile mount -a
și swapon -a
, este OBLIGATORIU să restartăm mașina virtuală, pentru a ne asigura că toate exercițiile de partiționare au fost făcute corect.
Dacă în timpul examenului RHCSA mașina nu pornește după reboot, înseamnă că ați făcut ceva greșit (de cele mai multe ori ați scris ceva greșit în fstab și nu ați mai verificat cu mount -a
sau swapon -a
). În acest caz, bootați în rescue.target (va face obiectul unui alt articol) și modificați corespunzător fișierul /etc/fstab.
Lasă un răspuns