Pe măsură ce utilizarea sistemului crește, spațiul de stocare devine adesea insuficient. Acest articol prezintă metodele profesionale de extindere a partițiilor rădăcină (/) și home (/home) prin adăugarea de discuri suplimentare, fără a necesita mutarea completă a datelor sau reinstalarea sistemului de operare.
Scop: Extinderea capacității de stocare prin integrarea transparentă a discurilor adiționale în structura existentă a sistemului de fișiere.
Audiență țintă: Administratori de sistem Linux cu experiență intermediară până la avansată.
Distribuții acoperite: Ubuntu/Debian, Fedora/RHEL/CentOS/Rocky/AlmaLinux, Arch Linux, openSUSE, și alte distribuții majore.
Acest ghid acoperă comenzile și particularitățile pentru următoarele familii de distribuții:
| Distribuție | Package Manager | Init System | Particularități |
|---|---|---|---|
| Ubuntu/Debian/Mint | apt/apt-get | systemd | Configurare standard, bună compatibilitate |
| Fedora/RHEL/CentOS/Rocky/AlmaLinux | dnf/yum | systemd | SELinux activ implicit, firewalld |
| Arch Linux/Manjaro | pacman | systemd | Rolling release, ultima versiune de pachete |
| openSUSE (Leap/Tumbleweed) | zypper | systemd | YaST pentru configurare, Btrfs implicit |
| Gentoo | emerge | OpenRC/systemd | Compilare din surse, personalizare maximă |
| Alpine Linux | apk | OpenRC | Lightweight, folosit în containere |
Înainte de a începe, instalați instrumentele necesare pentru distribuția dvs:
# Update package lists sudo apt update # Instalare instrumente de bază sudo apt install -y lvm2 parted gdisk util-linux # Pentru mergerfs (din repository) sudo apt install -y mergerfs # Pentru Btrfs sudo apt install -y btrfs-progs # Pentru XFS sudo apt install -y xfsprogs # Pentru ZFS sudo apt install -y zfsutils-linux
# Update package cache sudo dnf update # Instalare instrumente de bază sudo dnf install -y lvm2 parted gdisk util-linux-ng # Pentru mergerfs (necesită EPEL sau compilare) sudo dnf install -y epel-release # pentru RHEL/Rocky/AlmaLinux sudo dnf install -y fuse fuse-devel gcc make # Compilare mergerfs din surse (vezi mai jos) # Pentru Btrfs sudo dnf install -y btrfs-progs # Pentru XFS (instalat implicit pe RHEL/CentOS) sudo dnf install -y xfsprogs # Pentru ZFS (necesită repository special) sudo dnf install -y https://zfsonlinux.org/epel/zfs-release-2-2$(rpm --eval "%{dist}").noarch.rpm sudo dnf install -y zfs
sudo yum update sudo yum install -y lvm2 parted gdisk util-linux-ng sudo yum install -y epel-release sudo yum install -y btrfs-progs xfsprogs
# Update system sudo pacman -Syu # Instalare instrumente sudo pacman -S lvm2 parted gptfdisk util-linux # Pentru mergerfs (din AUR) yay -S mergerfs # sau folosiți alt AUR helper # SAU manual: git clone https://aur.archlinux.org/mergerfs.git cd mergerfs makepkg -si # Pentru Btrfs (în kernel) sudo pacman -S btrfs-progs # Pentru XFS sudo pacman -S xfsprogs # Pentru ZFS (din AUR) yay -S zfs-dkms zfs-utils
# Update system sudo zypper refresh sudo zypper update # Instalare instrumente sudo zypper install lvm2 parted gptfdisk util-linux # Pentru mergerfs (compilare necesară) sudo zypper install fuse fuse-devel gcc make # Pentru Btrfs (suport nativ excelent) sudo zypper install btrfsprogs # Pentru XFS sudo zypper install xfsprogs # Pentru ZFS sudo zypper addrepo https://download.opensuse.org/repositories/filesystems/openSUSE_Tumbleweed/filesystems.repo sudo zypper refresh sudo zypper install zfs
# Instalare instrumente (cu USE flags potrivite) emerge --ask sys-fs/lvm2 sys-apps/gptfdisk sys-apps/util-linux # Pentru mergerfs emerge --ask sys-fs/mergerfs # Pentru Btrfs emerge --ask sys-fs/btrfs-progs # Pentru XFS emerge --ask sys-fs/xfsprogs # Pentru ZFS emerge --ask sys-fs/zfs
# Instalare dependențe (ajustați pentru distribuția dvs) # Debian/Ubuntu: sudo apt install -y build-essential git fuse libfuse-dev # Fedora/RHEL: sudo dnf install -y gcc-c++ git fuse fuse-devel # Compilare cd /tmp git clone https://github.com/trapexit/mergerfs.git cd mergerfs make sudo make install
<WRAP center round important 60%> ATENȚIE: Înainte de orice operațiune de modificare a partițiilor, este obligatoriu să efectuați backup complet al datelor importante! </WRAP>
Comenzi recomandate pentru backup:
# Backup complet cu rsync sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/backup/ # Sau utilizând tar sudo tar -cvpzf backup-$(date +%Y%m%d).tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp /
Identificați configurația actuală a sistemului:
# Verificați partițiile existente lsblk -f # Verificați utilizarea spațiului df -h # Verificați dacă folosiți LVM sudo pvs sudo vgs sudo lvs # Verificați tipul filesystem-ului mount | grep "^/dev"
Avantaje:
Dezavantaje:
# Verificați dacă LVM este deja configurat sudo pvdisplay sudo vgdisplay sudo lvdisplay # Dacă nu există output, sistemul NU folosește LVM
ubuntu-vg sau debian-vgrhel, fedora, centos, rl (Rocky), almalinuxDacă sistemul folosește deja LVM:
# 1. Identificați discul nou lsblk # 2. Creați un Physical Volume pe discul nou sudo pvcreate /dev/sdb # 3. Identificați Volume Group-ul existent sudo vgdisplay # 4. Extindeți Volume Group-ul cu noul disc sudo vgextend ubuntu-vg /dev/sdb # 5. Extindeți Logical Volume-ul (de exemplu pentru root) sudo lvextend -l +100%FREE /dev/ubuntu-vg/root # SAU pentru /home sudo lvextend -l +100%FREE /dev/ubuntu-vg/home # 6. Redimensionați filesystem-ul # Pentru ext4 (Ubuntu/Debian implicit): sudo resize2fs /dev/ubuntu-vg/root # Pentru XFS (RHEL/CentOS/Fedora implicit pentru /): sudo xfs_growfs / # SAU sudo xfs_growfs /dev/rhel/root # Pentru Btrfs (Fedora 33+ workstation, openSUSE): sudo btrfs filesystem resize max / # SAU pentru un subvolume specific sudo btrfs filesystem resize max /dev/fedora/root # 7. Verificați rezultatul df -h # Pentru XFS, verificați și informațiile detaliate sudo xfs_info /
<WRAP center round tip 60%>
TIP: Pe RHEL/CentOS/Fedora, filesystem-ul implicit pentru / este XFS, care nu poate fi micșorat, doar extins! Planificați dimensiunile cu atenție.
</WRAP>
<WRAP center round important 70%> AVERTISMENT: Conversia unui sistem existent la LVM este o operațiune complexă și riscantă. Se recomandă doar pentru sistemele de testare sau cu backup complet verificat. </WRAP>
Pentru sisteme fără LVM, conversia partițiilor existente este dificilă și nu se recomandă pentru partiția root. Alternativele sunt:
Pașii pentru conversie manuală (doar pentru /home, NU pentru /):
# 1. Boot de pe Live CD/USB # 2. Instalați LVM tools sudo apt install lvm2 # 3. Creați backup complet al /home sudo mkdir /mnt/backup sudo mount /dev/sdc1 /mnt/backup # disc de backup sudo rsync -aAXv /mnt/original-home/ /mnt/backup/home-backup/ # 4. Ștergeți partiția /home (DOAR după backup verificat!) # 5. Creați PV, VG, LV pe discul liber sudo pvcreate /dev/sdb sudo vgcreate vg_home /dev/sdb sudo lvcreate -l 100%FREE -n lv_home vg_home # 6. Formatați și restaurați datele sudo mkfs.ext4 /dev/vg_home/lv_home sudo mount /dev/vg_home/lv_home /mnt/newhome sudo rsync -aAXv /mnt/backup/home-backup/ /mnt/newhome/ # 7. Actualizați /etc/fstab # Înlocuiți vechea intrare /home cu: # /dev/vg_home/lv_home /home ext4 defaults 0 2
mergerfs este un sistem de fișiere union FUSE care permite combinarea mai multor directoare/discuri într-un singur mount point virtual, păstrând transparența pentru aplicații.
Avantaje:
Dezavantaje:
# Instalare mergerfs sudo apt update sudo apt install mergerfs # SAU instalare din surse pentru ultima versiune wget https://github.com/trapexit/mergerfs/releases/download/2.40.2/mergerfs_2.40.2.ubuntu-jammy_amd64.deb sudo dpkg -i mergerfs_2.40.2.ubuntu-jammy_amd64.deb
# 1. Pregătiți discul nou sudo fdisk /dev/sdb # creați partiție sudo mkfs.ext4 /dev/sdb1 # 2. Creați mount point pentru discul adițional sudo mkdir -p /mnt/disk2 # 3. Montați discul adițional sudo mount /dev/sdb1 /mnt/disk2 # 4. Creați un mount point temporar pentru vechiul /home sudo mkdir /mnt/home-original sudo mount --bind /home /mnt/home-original # 5. Configurați mergerfs pentru a combina discurile # Demontați /home dacă este montat separat, sau pregătiți structura sudo mergerfs -o allow_other,use_ino,category.create=mfs,moveonenospc=true,minfreespace=10G /mnt/home-original:/mnt/disk2 /home
mergerfs oferă multiple politici pentru plasarea fișierelor noi:
| Politică | Descriere |
|---|---|
mfs (most free space) | Plasează pe discul cu cel mai mult spațiu liber |
lfs (least free space) | Plasează pe discul cu cel mai puțin spațiu liber |
eplfs (existing path, least free space) | Dacă directorul există, folosește lfs |
epmfs (existing path, most free space) | Dacă directorul există, folosește mfs |
ff (first found) | Primul disc cu spațiu suficient |
rand | Aleator |
Exemplu de configurare cu politici:
sudo mergerfs -o allow_other,use_ino,category.create=mfs,category.search=ff,moveonenospc=true,minfreespace=20G /mnt/home-original:/mnt/disk2:/mnt/disk3 /home
# Editați /etc/fstab sudo nano /etc/fstab # Adăugați intrările pentru discurile sursă UUID=xxxx-xxxx /mnt/home-original ext4 defaults 0 2 UUID=yyyy-yyyy /mnt/disk2 ext4 defaults 0 2 # Adăugați intrarea mergerfs /mnt/home-original:/mnt/disk2 /home fuse.mergerfs allow_other,use_ino,category.create=mfs,moveonenospc=true,minfreespace=10G 0 0
<WRAP center round tip 60%>
IMPORTANT: mergerfs trebuie montat după discurile sursă. Folosiți x-systemd.requires pentru dependențe în fstab dacă este necesar.
</WRAP>
OverlayFS este un sistem de fișiere union integrat în kernel-ul Linux, care permite suprapunerea mai multor straturi de directoare.
Avantaje:
Dezavantaje:
# 1. Pregătiți discul nou sudo mkfs.ext4 /dev/sdb1 sudo mkdir /mnt/disk2 sudo mount /dev/sdb1 /mnt/disk2 # 2. Creați structura de directoare sudo mkdir -p /mnt/disk2/upper sudo mkdir -p /mnt/disk2/work # 3. Salvați vechiul /home sudo mkdir /mnt/home-lower sudo mount --bind /home /mnt/home-lower # 4. Montați overlay sudo mount -t overlay overlay -o lowerdir=/mnt/home-lower,upperdir=/mnt/disk2/upper,workdir=/mnt/disk2/work /home
<WRAP center round important 70%> ATENȚIE: OverlayFS are limitări semnificative:
</WRAP>
Această metodă constă în mutarea selectivă a directoarelor mari pe discul nou și crearea de symbolic links către acestea.
Avantaje:
Dezavantaje:
# 1. Pregătiți și montați discul nou sudo mkfs.ext4 /dev/sdb1 sudo mkdir /mnt/storage sudo mount /dev/sdb1 /mnt/storage # 2. Identificați directoarele mari du -sh /home/*/* | sort -hr | head -20 # 3. Mutați directoarele mari # Exemplu: Directorul Videos al unui user sudo systemctl stop user@1000.service # opriți procesele user-ului sudo mv /home/username/Videos /mnt/storage/ sudo ln -s /mnt/storage/Videos /home/username/Videos sudo chown -h username:username /home/username/Videos # 4. Verificați ls -la /home/username/ readlink /home/username/Videos # 5. Adăugați în /etc/fstab pentru montare automată echo "UUID=$(blkid -s UUID -o value /dev/sdb1) /mnt/storage ext4 defaults 0 2" | sudo tee -a /etc/fstab # 6. Reporniți procesele user-ului sudo systemctl start user@1000.service
Această metodă este ideală pentru:
Dacă utilizați Btrfs ca filesystem, acesta oferă suport nativ pentru extindere pe multiple discuri.
Distribuții care folosesc Btrfs implicit:
# Verificați dacă folosiți Btrfs mount | grep btrfs df -hT | grep btrfs # Pentru openSUSE/SUSE - verificați subvolume-le sudo btrfs subvolume list / # Exemplu output openSUSE: # ID 256 gen 1234 top level 5 path @ # ID 257 gen 1235 top level 5 path @/home # ID 258 gen 1236 top level 5 path @/var # ID 259 gen 1237 top level 5 path @/snapshots
# Adăugați un disc la filesystem-ul Btrfs existent sudo btrfs device add /dev/sdb /home # SAU pentru root (Fedora/openSUSE) sudo btrfs device add /dev/sdb / # Rebalanțați datele pentru distribuire optimă # ATENȚIE: Acest proces poate dura mult pe sisteme mari! sudo btrfs balance start /home # SAU balanțare parțială (recomandată pentru sisteme mari) sudo btrfs balance start -dusage=50 /home # Verificați spațiul sudo btrfs filesystem show /home sudo btrfs filesystem df /home # Verificați progresul balanțării sudo btrfs balance status /home
openSUSE folosește o structură complexă de subvolume pentru snapshots:
# Verificați structura subvolume-lor sudo btrfs subvolume list / # Pentru a extinde, adăugați disc la filesystem root sudo btrfs device add /dev/sdb / # Rebalanțați (snapper va crea snapshots automat) sudo btrfs balance start -dusage=30 / # Verificați configurația snapper sudo snapper -c root list sudo snapper -c home list # Limitați numărul de snapshots dacă spațiul este limitat sudo snapper -c root set-config NUMBER_LIMIT=10 sudo snapper -c home set-config NUMBER_LIMIT=5 # Curățați snapshots vechi sudo snapper -c root cleanup number
Fedora Workstation folosește Btrfs cu subvolume mai simple:
# Verificați subvolume-le Fedora sudo btrfs subvolume list / # Typical output: # ID 256 gen 100 top level 5 path root # ID 257 gen 101 top level 5 path home # Adăugați disc nou sudo btrfs device add /dev/sdb / # Balanțare sudo btrfs balance start -dusage=50 / # Verificați sudo btrfs filesystem usage /
Avantaje Btrfs:
Dezavantaje Btrfs:
<WRAP center round important 70%> RISC RIDICAT: Conversia de la ext4 la Btrfs este posibilă, dar nu se recomandă pentru sisteme de producție fără backup complet și testare. </WRAP>
# Conversie ext4 -> Btrfs (doar pentru /home demonte) # 1. Boot de pe Live CD # 2. Verificați și reparați ext4 sudo e2fsck -f /dev/sdb1 # 3. Convertiți (IREVERSIBIL fără backup!) sudo btrfs-convert /dev/sdb1 # 4. Montați și verificați sudo mount /dev/sdb1 /mnt/test sudo btrfs filesystem show /mnt/test
ZFS este un sistem de fișiere avansat cu capabilități de gestiune a volumelor integrate.
Avantaje:
Dezavantaje:
# Instalare ZFS sudo apt install zfsutils-linux # Creați un pool nou SAU extindeți unul existent # Pentru a extinde un pool existent: sudo zpool add tank /dev/sdb # Verificați status sudo zpool status sudo zpool list # Pentru /home, creați dataset sudo zfs create tank/home sudo zfs set mountpoint=/home tank/home
Dacă folosiți servicii de monitoring sau partajare pentru storage:
# firewalld este activ implicit pe RHEL/Fedora/CentOS sudo firewall-cmd --state # Pentru NFS (dacă partajați storage) sudo firewall-cmd --permanent --add-service=nfs sudo firewall-cmd --permanent --add-service=mountd sudo firewall-cmd --permanent --add-service=rpc-bind sudo firewall-cmd --reload # Pentru Samba (partajare Windows) sudo firewall-cmd --permanent --add-service=samba sudo firewall-cmd --reload
# ufw poate fi activ pe Ubuntu Desktop sudo ufw status # Pentru NFS sudo ufw allow from 192.168.1.0/24 to any port nfs sudo ufw allow from 192.168.1.0/24 to any port 111 # Pentru Samba sudo ufw allow samba
# openSUSE Leap 15+ folosește firewalld sudo firewall-cmd --permanent --add-service=nfs sudo firewall-cmd --reload # SAU prin YaST sudo yast2 firewall
Pentru a monta discuri doar când sunt accesate:
# Creați fișier .mount sudo nano /etc/systemd/system/mnt-disk2.mount [Unit] Description=Additional Storage Disk 2 [Mount] What=/dev/disk/by-uuid/YOUR-UUID-HERE Where=/mnt/disk2 Type=ext4 Options=defaults [Install] WantedBy=multi-user.target
# Creați fișier .automount sudo nano /etc/systemd/system/mnt-disk2.automount [Unit] Description=Automount Additional Storage Disk 2 [Automount] Where=/mnt/disk2 TimeoutIdleSec=300 [Install] WantedBy=multi-user.target
# Activați automount sudo systemctl daemon-reload sudo systemctl enable mnt-disk2.automount sudo systemctl start mnt-disk2.automount
# Curățați cache-ul de pachete sudo apt clean sudo apt autoclean # Eliminați pachete orfane sudo apt autoremove # Verificați spațiul ocupat de cache du -sh /var/cache/apt/archives/
# Curățați cache DNF (Fedora, RHEL 8+) sudo dnf clean all # Eliminați pachete vechi kernel sudo dnf remove $(dnf repoquery --installonly --latest-limit=-2 -q) # SAU pentru YUM (CentOS 7, RHEL 7) sudo yum clean all sudo package-cleanup --oldkernels --count=2 # Verificați spațiul du -sh /var/cache/dnf/ du -sh /var/cache/yum/
# Curățați cache pacman sudo pacman -Sc # SAU curățare completă (include pachete neinstalate) sudo pacman -Scc # Eliminați pachete orfane sudo pacman -Rns $(pacman -Qtdq) # Verificați spațiul du -sh /var/cache/pacman/pkg/
# Curățați cache zypper sudo zypper clean --all # Eliminați pachete orfane sudo zypper packages --unneeded | grep '^i' | awk '{print $3}' | xargs sudo zypper remove --clean-deps # Verificați spațiul du -sh /var/cache/zypp/
# Verificați dimensiunea jurnalelor sudo journalctl --disk-usage # Limitați dimensiunea jurnalelor la 500MB sudo journalctl --vacuum-size=500M # SAU păstrați doar ultimele 7 zile sudo journalctl --vacuum-time=7d # Configurare permanentă în /etc/systemd/journald.conf sudo nano /etc/systemd/journald.conf # Setați: # SystemMaxUse=500M # SystemMaxFileSize=50M # Restart journald sudo systemctl restart systemd-journald
# Verificați dimensiunea logurilor vechi sudo du -sh /var/log/* # Forțați rotația logurilor sudo logrotate -f /etc/logrotate.conf # Curățați loguri vechi manuale (cu atenție!) sudo find /var/log -type f -name "*.log.*" -mtime +30 -delete sudo find /var/log -type f -name "*.gz" -mtime +30 -delete
Context: Ubuntu 22.04 LTS Server cu LVM, /home devine plin.
# 1. Verificare configurație sudo pvs sudo vgs sudo lvs df -h # 2. Adăugare disc nou sudo pvcreate /dev/sdb sudo vgextend ubuntu-vg /dev/sdb # 3. Extindere /home cu 100GB sudo lvextend -L +100G /dev/ubuntu-vg/home # SAU tot spațiul disponibil sudo lvextend -l +100%FREE /dev/ubuntu-vg/home # 4. Resize filesystem (ext4) sudo resize2fs /dev/ubuntu-vg/home # 5. Verificare df -h /home
Context: RHEL 9 Server cu LVM și XFS, se extinde / și /home.
# 1. Verificare SELinux getenforce # 2. Verificare configurație LVM sudo pvs sudo vgs sudo lvs # 3. Adăugare disc sudo pvcreate /dev/sdb # 4. Extindere volume group sudo vgextend rhel /dev/sdb # 5. Extindere root (XFS) sudo lvextend -L +50G /dev/rhel/root sudo xfs_growfs / # 6. Extindere home (XFS) sudo lvextend -L +150G /dev/rhel/home sudo xfs_growfs /home # 7. Verificare context SELinux după modificări sudo restorecon -Rv /home/ # 8. Verificare df -h sudo lvs
Context: Fedora 40 Workstation cu Btrfs, spațiu insuficient.
# 1. Verificare subvolume sudo btrfs subvolume list / # 2. Verificare spațiu actual sudo btrfs filesystem usage / # 3. Adăugare disc nou sudo btrfs device add /dev/sdb / # 4. Balanțare pentru distribuire date sudo btrfs balance start -dusage=50 / # 5. Verificare progres sudo btrfs balance status / # 6. Verificare spațiu final sudo btrfs filesystem usage / df -h
Context: openSUSE cu Btrfs și snapshots Snapper ocupa mult spațiu.
# 1. Verificare snapshots sudo snapper list # 2. Verificare spațiu snapshots sudo btrfs filesystem du -s /.snapshots/* # 3. Curățare snapshots vechi sudo snapper cleanup number # 4. Limitare număr snapshots sudo snapper -c root set-config "NUMBER_LIMIT=10" sudo snapper -c root set-config "NUMBER_LIMIT_IMPORTANT=5" # 5. Ștergere snapshots specifice sudo snapper delete 100-150 # 6. Adăugare disc pentru mai mult spațiu sudo btrfs device add /dev/sdb / sudo btrfs balance start -dusage=30 / # 7. Verificare sudo btrfs filesystem usage /
Context: Instalare nouă Arch cu planificare extindere viitoare.
# 1. Instalare LVM de la început sudo pacman -S lvm2 # 2. Configurare discuri sudo pvcreate /dev/sda2 /dev/sdb sudo vgcreate vg0 /dev/sda2 /dev/sdb # 3. Creare logical volumes sudo lvcreate -L 50G vg0 -n root sudo lvcreate -L 200G vg0 -n home sudo lvcreate -L 16G vg0 -n swap # 4. Formatare sudo mkfs.ext4 /dev/vg0/root sudo mkfs.ext4 /dev/vg0/home sudo mkswap /dev/vg0/swap # 5. Montare pentru instalare mount /dev/vg0/root /mnt mkdir /mnt/home mount /dev/vg0/home /mnt/home swapon /dev/vg0/swap # 6. După instalare, actualizați /etc/mkinitcpio.conf # Adăugați 'lvm2' în HOOKS sudo nano /etc/mkinitcpio.conf # HOOKS=(base udev ... block lvm2 filesystems) # 7. Regenerați initramfs sudo mkinitcpio -P
| Metodă | Complexitate | Risc | Performanță | Flexibilitate | Recomandat pentru | Distribuții Ideale |
|---|---|---|---|---|---|---|
| LVM | Medie-Mare | Mediu | Excelentă | Foarte mare | Sisteme cu LVM existent, servere | RHEL/CentOS/Rocky/AlmaLinux, Debian Server, Ubuntu Server |
| mergerfs | Mică | Foarte mic | Bună | Mare | Sisteme desktop, media servers | Ubuntu/Debian/Mint, Arch Linux |
| OverlayFS | Medie | Mic | Excelentă | Medie | Containere, sisteme embedded | Toate (integrat în kernel) |
| Symlinks | Foarte mică | Foarte mic | Nativă | Mică | Soluții rapide, directoare specifice | Toate distribuțiile |
| Btrfs | Mare | Mediu | Bună | Foarte mare | Utilizatori avansați, workstation-uri | Fedora 33+, openSUSE, SUSE Linux Enterprise |
| ZFS | Foarte mare | Mediu | Excelentă | Foarte mare | Servere, storage profesional | Ubuntu (ZFS native), Proxmox, TrueNAS |
| Distribuție | Metodă Recomandată | Motivație |
|---|---|---|
| Ubuntu/Debian Desktop | mergerfs sau LVM | Simplitate și flexibilitate |
| Ubuntu/Debian Server | LVM | Gestionare profesională, snapshots cu LVM thin |
| Fedora Workstation | Btrfs native | Deja configurat, suport excelent |
| RHEL/CentOS/Rocky/AlmaLinux | LVM | Implicit configurat, standard enterprise |
| Arch Linux | LVM sau mergerfs | Libertate de alegere, documentație excelentă |
| openSUSE | Btrfs native | Deja configurat cu snapper, performanță optimă |
| Gentoo | LVM | Control complet, optimizare maximă |
| Proxmox/TrueNAS | ZFS | Storage enterprise, integritate date |
După migrare sau extindere, pot apărea probleme cu permisiunile:
# Verificați permisiunile ls -la /home/ # Restaurați permisiunile corecte pentru /home sudo chmod 755 /home sudo chmod 700 /home/* # Restaurați ownership-ul sudo chown -R username:username /home/username/ # Pentru SELinux (RHEL/Fedora/CentOS) - IMPORTANT! # Verificați dacă SELinux este activ getenforce # Restaurați contextele SELinux sudo restorecon -Rv /home/ # SAU pentru directoare noi pe discuri adiționale sudo semanage fcontext -a -e /home /mnt/disk2 sudo restorecon -Rv /mnt/disk2/ # Pentru a permite FUSE cu SELinux (mergerfs) sudo setsebool -P use_fusefs_home_dirs 1 # Verificați contextele SELinux ls -laZ /home/
# Dacă discul nou va fi folosit pentru /home sudo semanage fcontext -a -t home_root_t "/mnt/disk2(/.*)?" sudo restorecon -Rv /mnt/disk2 # Pentru director de date generic sudo semanage fcontext -a -t user_home_t "/mnt/disk2(/.*)?" sudo restorecon -Rv /mnt/disk2 # Verificați și rezolvați problemele SELinux sudo ausearch -m AVC -ts recent sudo audit2allow -a # generează politici pentru probleme găsite
Dacă sistemul nu montează corect discurile la boot:
# Verificați /etc/fstab pentru erori de sintaxă sudo mount -a # Folosiți UUID în loc de /dev/sdX (mai stabil) sudo blkid /dev/sdb1 # Apoi actualizați /etc/fstab cu UUID # Verificați ordinea de montare (discurile trebuie montate înaintea mergerfs/overlay) # Adăugați dependențe systemd dacă este necesar: # x-systemd.requires=/mnt/disk2
Dacă observați performanță scăzută după extindere:
# Testați performanța discurilor sudo hdparm -Tt /dev/sdb sudo fio --name=seqread --rw=read --bs=1M --size=1G --filename=/home/testfile # Pentru mergerfs, ajustați cache și politici # Adăugați opțiuni în fstab: # cache.files=auto-full,dropcacheonclose=true,cache.statfs=true # Pentru LVM, verificați alignment-ul sudo pvs -o+pe_start # Pentru Btrfs, rebalansați sudo btrfs balance start -dusage=50 /home
Dacă după extindere spațiul nu apare:
# Pentru LVM - verificați că ați redimensionat filesystem-ul df -h # arată spațiul filesystem sudo lvs # arată spațiul LV # Dacă LV este mai mare decât filesystem, redimensionați: sudo resize2fs /dev/vg/lv # pentru ext4 sudo xfs_growfs /mount/point # pentru XFS # Pentru mergerfs - verificați politicile de plasare # S-ar putea ca fișierele noi să nu se plaseze pe discul nou # Verificați cu: df -h /home ls -la /mnt/disk2/
# Verificați S.M.A.R.T. status pentru discuri sudo smartctl -a /dev/sdb # Verificați kernel logs pentru erori sudo dmesg | grep -i error sudo journalctl -b | grep -i "i/o error" # Rulați fsck pe partiții (doar dacă sunt demontate!) # Boot de pe Live CD/USB sudo e2fsck -f -v /dev/sdb1 # Pentru Btrfs sudo btrfs scrub start /home sudo btrfs scrub status /home
# mergerfs nu pornește la boot # Verificați că discurile sursă sunt montate înainte de mergerfs # Adăugați în /etc/fstab: # x-systemd.requires=/mnt/disk1:/mnt/disk2 # Fișierele nu se distribuie corect # Verificați politica de creare: mount | grep mergerfs # Schimbați politica dacă e necesar # Performanță lentă cu multe fișiere mici # Activați cache-ul: # cache.files=auto-full,cache.entry=true,cache.negative_entry=true
Dacă ați clonat discuri:
# Generați UUID nou pentru partiție sudo tune2fs /dev/sdb1 -U random # Sau pentru XFS sudo xfs_admin -U generate /dev/sdb1 # Actualizați /etc/fstab cu noul UUID
# Monitorizați spațiul disponibil df -h | grep -E "home|root" # Monitorizați S.M.A.R.T. sudo smartctl -a /dev/sdb | grep -E "Health|Error" # Pentru LVM, monitorizați PE usage sudo vgs sudo lvs -o+lv_layout,stripes # Configurați alerte pentru spațiu limitat # Adăugați în crontab: # 0 */6 * * * /usr/local/bin/check-disk-space.sh
Script exemplu pentru monitorizare:
#!/bin/bash # /usr/local/bin/check-disk-space.sh THRESHOLD=90 USAGE=$(df -h /home | tail -1 | awk '{print $5}' | sed 's/%//') if [ $USAGE -gt $THRESHOLD ]; then echo "WARNING: /home is ${USAGE}% full!" | mail -s "Disk Space Alert" admin@example.com fi
# Pentru SSD-uri, activați TRIM sudo systemctl enable fstrim.timer sudo systemctl start fstrim.timer # Pentru discuri mecanice, ajustați scheduler-ul I/O echo "deadline" | sudo tee /sys/block/sdb/queue/scheduler # Pentru Btrfs, activați compresie sudo btrfs property set /home compression zstd # Pentru ext4, activați journal commit optimization # În /etc/fstab: defaults,noatime,commit=60
# Criptați discurile noi cu LUKS sudo cryptsetup luksFormat /dev/sdb1 sudo cryptsetup open /dev/sdb1 encrypted_disk sudo mkfs.ext4 /dev/mapper/encrypted_disk # Configurați montarea automată în /etc/crypttab # encrypted_disk UUID=xxx none luks,discard
Context: Utilizator desktop cu partiție /home de 500GB plină, adaugă un HDD de 2TB.
# 1. Pregătire disc sudo fdisk /dev/sdb # Creați partiție primară completă sudo mkfs.ext4 /dev/sdb1 # 2. Montare disc adițional sudo mkdir /mnt/home-extra echo "UUID=$(blkid -s UUID -o value /dev/sdb1) /mnt/home-extra ext4 defaults 0 2" | sudo tee -a /etc/fstab sudo mount /mnt/home-extra # 3. Instalare și configurare mergerfs sudo apt install mergerfs # 4. Backup configurație /home sudo cp /etc/fstab /etc/fstab.backup # 5. Creare mount point pentru vechiul /home sudo mkdir /mnt/home-disk1 # Editați /etc/fstab - mutați linia /home la /mnt/home-disk1 # 6. Configurare mergerfs în /etc/fstab # Adăugați: # /mnt/home-disk1:/mnt/home-extra /home fuse.mergerfs allow_other,use_ino,category.create=mfs,moveonenospc=true,minfreespace=50G,cache.files=auto-full 0 0 # 7. Reboot și verificare sudo reboot # După reboot: df -h /home mount | grep mergerfs
Context: Server cu /home pe HDD, se adaugă SSD pentru performanță.
# 1. Creați PV pe SSD sudo pvcreate /dev/nvme0n1 # 2. Extindeți VG sudo vgextend vg_data /dev/nvme0n1 # 3. Creați LV cu stripe pe ambele discuri pentru performanță sudo lvcreate -L 200G -n lv_fast -i 2 vg_data # SAU folosiți lvmcache pentru cache tier sudo lvcreate -L 50G -n cache_pool vg_data /dev/nvme0n1 sudo lvcreate -L 10G -n cache_meta vg_data /dev/nvme0n1 sudo lvconvert --type cache-pool --poolmetadata vg_data/cache_meta vg_data/cache_pool sudo lvconvert --type cache --cachepool vg_data/cache_pool vg_data/lv_home # 4. Verificați performanța sudo lvs -a -o +devices,cache_mode
Context: Plex/Jellyfin media server cu biblioteci mari pe discuri diferite.
# 1. Montați discurile individual sudo mkdir -p /mnt/{movies,tvshows,music} # În /etc/fstab: # UUID=xxx /mnt/movies ext4 defaults 0 2 # UUID=yyy /mnt/tvshows ext4 defaults 0 2 # UUID=zzz /mnt/music ext4 defaults 0 2 # 2. Creați symbolic links în /home/media sudo mkdir -p /home/media sudo ln -s /mnt/movies /home/media/Movies sudo ln -s /mnt/tvshows /home/media/TVShows sudo ln -s /mnt/music /home/media/Music # 3. Configurați permisiunile pentru Plex sudo chown -R plex:plex /mnt/{movies,tvshows,music} sudo chmod -R 755 /mnt/{movies,tvshows,music} # SAU folosiți mergerfs pentru unificare: # /mnt/movies:/mnt/tvshows:/mnt/music /home/media fuse.mergerfs allow_other,use_ino,category.create=epmfs,cache.files=auto-full 0 0
Extinderea partițiilor / și /home pe discuri adiționale în Linux poate fi realizată prin multiple metode, fiecare cu avantajele și dezavantajele sale:
| Distribuție | Configurație Implicită | Metodă Recomandată | Alternative |
|---|---|---|---|
| Ubuntu/Debian Desktop | ext4, fără LVM | mergerfs, Symlinks | LVM (necesită reinstalare) |
| Ubuntu/Debian Server | LVM cu ext4 | LVM | Btrfs, ZFS |
| Fedora Workstation 33+ | Btrfs cu subvolume | Btrfs native | mergerfs pentru simplicitate |
| Fedora Server | LVM cu XFS | LVM | Btrfs |
| RHEL/CentOS/Rocky/AlmaLinux | LVM cu XFS | LVM | Stratis (RHEL 8+) |
| Arch Linux | Configurare manuală | LVM sau mergerfs | Btrfs, ZFS (libertate totală) |
| openSUSE | Btrfs cu snapper | Btrfs native | LVM pentru servere |
| Gentoo | Configurare manuală | LVM | Orice (compilare personalizată) |
Alegerea metodei potrivite depinde de:
1. Distribuția utilizată:
2. Nivelul de experiență:
3. Cerințele de performanță:
4. Filesystem existent:
5. Funcționalități speciale:
RHEL/CentOS/Rocky/AlmaLinux:
Fedora:
Ubuntu/Debian:
openSUSE:
Arch Linux:
<WRAP center round important 70%> ATENȚIE FINALĂ: Indiferent de distribuție sau metoda aleasă, backup-ul complet și verificat este obligatoriu înainte de orice modificare a structurii de stocare! </WRAP>
#ubuntu pe Libera.Chat#fedora pe Libera.Chat#rhel pe Libera.Chat#archlinux pe Libera.Chat#opensuse pe Libera.Chat#btrfs pe Libera.Chat#lvm pe OFTC