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
ATENȚIE: Înainte de orice operațiune de modificare a partițiilor, este obligatoriu să efectuați backup complet al datelor importante!
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 /
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.
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.
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
IMPORTANT: mergerfs trebuie montat după discurile sursă. Folosiți x-systemd.requires pentru dependențe în fstab dacă este necesar.
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
ATENȚIE: OverlayFS are limitări semnificative:
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:
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.
# 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:
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!
#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