Če strežniku dodajo nov disk (na primer drugi disk namenskega strežnika ali ločen podatkovni disk, dodeljen VPS), ga sistem sicer vidi, uporabljati pa ga more šele, ko ga razdeli, na njem ustvari datotečni sistem in ga priklopi v imenik. Ta članek prikazuje te korake.
Če nisi dobil novega diska, temveč se je obstoječi disk povečal, zate velja članek Kako povečam datotečni sistem po razširitvi diska VPS?
Pozor: razdeljevanje in formatiranje izbrišeta vse podatke na disku. Pred vsakim korakom preveri, ali delaš na pravem disku.
1. Prepoznavanje novega diska
lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINTS
Na testnem računalniku z AlmaLinux 10, z novim diskom velikosti 6 GB:
NAME FSTYPE SIZE MOUNTPOINTS
vda 10G
├─vda1 vfat 200M /boot/efi
├─vda2 xfs 1G /boot
└─vda3 xfs 8.8G /
vdb iso9660 900K
vdc 6G
Nov disk je tisti, ki nima razdelka, datotečnega sistema in priklopne točke; v primeru vdc. (vdb je tu majhen konfiguracijski disk samo za branje, ki ga je uporabil namestitveni program; takega nima vsak strežnik.) Razdelkov sistemskega diska (vda ali sda) se ne dotikaj. Korake smo preizkusili na tem računalniku; v ukazih je splošnejše ime vdb, prepiši ga na ime svojega diska.
2. Razdelitev
Ustvari tabelo razdelkov GPT in en razdelek, ki zapolni ves disk:
sudo parted /dev/vdb --script mklabel gpt mkpart primary 0% 100%
Preverjanje: v izpisu lsblk se pojavi razdelek vdb1.
3. Ustvarjanje datotečnega sistema
V AlmaLinux in Rocky Linux je privzet XFS, v Ubuntuju in Debianu pa ext4; oba sta dobra izbira.
# XFS
sudo mkfs.xfs /dev/vdb1
# ali ext4
sudo mkfs.ext4 /dev/vdb1
4. Priklop
Ustvari imenik, kjer bo disk dosegljiv, in ga priklopi:
sudo mkdir -p /mnt/data
sudo mount /dev/vdb1 /mnt/data
df -h /mnt/data
5. Trajni priklop v datoteki /etc/fstab
Disk, priklopljen z ukazom mount, se po ponovnem zagonu ne priklopi znova. Za to ga je treba dodati v datoteko /etc/fstab. Ime naprave (/dev/vdb1) se lahko ob ponovnem zagonu spremeni, zato uporabi enolični identifikator razdelka (UUID):
sudo blkid /dev/vdb1
/dev/vdb1: UUID="3f1c9a2e-7b4d-4e0a-9c55-1d2e3f4a5b6c" TYPE="xfs" ...
Naredi kopijo datoteke fstab, nato dodaj novo vrstico:
sudo cp /etc/fstab /etc/fstab.bak
sudo nano /etc/fstab
UUID=3f1c9a2e-7b4d-4e0a-9c55-1d2e3f4a5b6c /mnt/data xfs defaults,nofail 0 0
Pri datotečnem sistemu ext4 je vrsta ext4, zadnja številka pa 2 (ob zagonu preveri datotečni sistem). Nastavitev nofail zagotovi, da se strežnik zažene, tudi če disk iz nekega razloga ni dosegljiv.
Pred ponovnim zagonom preveri nastavitev. Zaradi napačne vrstice v fstab se strežnik ne zažene in ga je mogoče popraviti le prek konzole.
sudo umount /mnt/data
sudo systemctl daemon-reload
sudo mount -a
sudo findmnt --verify
df -h /mnt/data
Pri pravilni nastavitvi findmnt --verify izpiše: Success, no errors or warnings detected. Za vrstico z zatipkanim UUID je v preizkusu vrnil to:
/mnt/rossz
[E] unreachable on boot required target: No such file or directory
[E] unreachable on boot required source: UUID=00000000-1111-2222-3333-444444444444
mount -a pa: mount: /mnt/rossz: can't find UUID=…. Če mount -a izpiše napako ali df diska ne pokaže, vrstico popravi, preden znova zaženeš strežnik. V preizkusu se je disk, dodan s pravilno vrstico, po ponovnem zagonu priklopil sam.
6. Dovoljenja
Korenski imenik priklopljenega diska je v lasti uporabnika root. Če želi nanj pisati tudi uporabnik ali storitev (na primer spletni strežnik), nastavi lastnika:
sudo chown -R janos:janos /mnt/data
Več o dovoljenjih: Dovoljenja datotek (chmod, chown) v Linuxu. V AlmaLinux je treba, če bo na disku spletna vsebina ali podatkovna baza, nastaviti tudi oznake SELinux (glej: SELinux: zakaj dobim napako „Permission denied”?).
Uporaba LVM
Če želiš prostor pozneje razširiti iz več diskov, lahko disk namesto razdelitve in formatiranja nastaviš tudi kot nosilec LVM (glej: Kaj je LVM?):
sudo pvcreate /dev/vdb
sudo vgcreate data /dev/vdb
sudo lvcreate -l 100%FREE -n adat data
sudo mkfs.xfs /dev/data/adat
Nato nosilec /dev/data/adat priklopi po zgornjih korakih 4–5 (v vrstici fstab lahko navedeš tudi ime /dev/data/adat, ime nosilca LVM se ne spremeni). V AlmaLinux 9 in 10 prvi pvcreate ustvari datoteko /etc/lvm/devices/system.devices („Creating devices file”): LVM nato upravlja le tu navedene diske, pvcreate in vgextend pa nove dodata samodejno.