Come spostare / var su un'altra partizione esistente?

Ho una / partizione che contiene / var ed è troppo piccola. Ho un'altra partizione esistente con spazio sufficiente.

Ecco il mio df:

File system Size. Occ. Avai. %Ful. Monté sur /dev/sda1 5,0G 4,5G 289M 95% / tmpfs 242M 0 242M 0% /lib/init/rw udev 10M 2,7M 7,4M 27% /dev tmpfs 242M 0 242M 0% /dev/shm /dev/sda2 15G 406M 14G 3% /home 

Come posso spostare la cartella / var da sda1 a sda2?

  • Ridimensionamento della partizione di root Debian
  • Principali vs partizioni estese su Linux
  • mysql "hotcopy" e symlinking
  • HP DL320e Gen8, unità 3TB, Windows Server 2012 R2 - difficoltà di allocazione di capacità di HDD durante l'installazione
  • Applicazioni open source per ridimensionare le partizioni di unità
  • Ridimensionamento della partizione di swap (RHEL 5.x)
  • Come ridurre / a casa e aggiungere più spazio su CentOS7
  • condividendo una partizione ext3 / ext4 sull'unità esterna
  • 3 Solutions collect form web for “Come spostare / var su un'altra partizione esistente?”

    Andare in modalità singola utente e assicurarsi che la scrittura di process a /var sia interrotta. (Verifica con lsof | grep /var )

    • mkdir -p /home/var
    • rsync -va /var /home/var
    • mv /var /var.old # è ansible rimuovere /var.old quando si è fatto per recuperare lo spazio
    • mkdir -p /var
    • mount -o bind /home/var /var
    • aggiornare il tuo /etc/fstab per rendere permanente il bind-mount.

    /etc/fstab

      /home/var /var none bind 

    È inoltre ansible utilizzare:

      mkdir /home/var <move contents of /var to /home/var -- however you want; EX: mv /var/* /home/var> mv /var /var.old ln -s /home/var /var 

    Questo sembra molto più facile di mettersi in giro con il fstab e montare roba.

    Spostare /var senza passare alla modalità singola utente

    Quando ho assunto un nuovo server virtuale che era stato fornito per me dalla società di hosting del mio datore di lavoro, ho creato volumi logici extra per var e home che erano stati directory normali nella partizione di root. Poiché il fornitore del server virtuale non ha fornito un'interface simile a KVM per cui potevo accedere al server in modalità singolo utente, le risposte di cui sopra non erano applicabili alla mia configuration. Spero che questa risposta sia utile per gli altri in una situazione simile (ho tenuto i dettagli LVM ma questi possono essere ignorati in quanto non è particolarmente rilevante se il nuovo filesystem viene creato in un volume logico o in una partizione del disco).

    Creare e utilizzare un nuovo file system /var con LVM

    Creare il file system per il nuovo volume var , montarlo (utilizzando una directory temporanea) e copiare i file dalla corrente /var al nuovo filesystem. Quando si copiano i file con rsync , utilizzare la sua opzione -a, --archive per salvare i timbri, la properties;, i modi, ecc. E la -X, --xattrs opzione -X, --xattrs per preservare gli attributi estesi come le etichette di sicurezza utilizzate da AppArmor e SELinux.

     sudo lvcreate -L 60GB -n var VolGroup00 sudo mkfs.ext4 /dev/VolGroup00/var sudo mkdir /var.new sudo mount /dev/VolGroup00/var /var.new sudo rsync -raX /var/ /var.new/ 

    Aggiorna la tabella dei filesystem

    Configurare il nuovo filesystem da utilizzare come nuovo mount-point per /var aggiungendo la seguente row a /etc/fstab . Si noti che 0 viene utilizzato come numero di passaggio (ultimo field) in modo che il file system non verrà controllato automaticamente ( fsck ) dopo un certo numero di riavvii (non ho accesso per accedere al server in modalità singolo utente) .

     /dev/mapper/VolGroup00-var /var ext4 defaults 0 0 

    Poiché non posso cambiare in modalità singolo utente, riavviare il computer per utilizzare questo nuovo volume come /var .

    Recupera lo spazio su disco dal file system root

    Dopo aver riavviato la macchina, eseguire le seguenti operazioni per pulire la directory temporanea e rimuovere i vecchi file /var dal file system root:

    1. Rimuovere il punto di assembly temporaneo:

       sudo rmdir /var.new 
    2. Creare un nuovo punto di assembly per creare un path alternativo ai file della vecchia directory /var del file system root (attualmente "mascherato" dal nuovo file system /var montato nella directory):

       sudo mkdir /old-root sudo mount /dev/mapper/VolGroup00-root /old-root/ sudo rm -rf /old-root/var/* sudo umount /old-root/ sudo rmdir /old-root/ 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.