Hvordan flytte hjemmekatalog til ny partisjon eller disk i Linux


På ethvert Linux-system må en av katalogene som sikkert vil vokse i størrelse være /home-katalogen. Dette er fordi systemkontoer (brukere) kataloger vil ligge i /home bortsett fra rotkonto – her vil brukere kontinuerlig lagre dokumenter og andre filer.

En annen viktig katalog med samme oppførsel er /var, den inneholder loggfiler hvis størrelse gradvis vil øke etter hvert som systemet fortsetter å kjøre, for eksempel loggfiler, nettfiler, utskriftskøfiler osv.

Når disse katalogene fylles opp, kan dette forårsake kritiske problemer på rotfilsystemet som resulterer i systemoppstartsfeil eller andre relaterte problemer. Noen ganger kan du imidlertid bare legge merke til dette etter at du har installert systemet og konfigurert alle kataloger på rotfilsystemet/partisjonen.

Foreslått lesing: Linux-katalogstruktur og viktige filbaner forklart

I denne veiledningen vil vi vise hvordan du flytter hjemmekatalogen til en dedikert partisjon, muligens på en ny lagringsdisk i Linux.

Installere og partisjonere en ny harddisk i Linux

Før vi går videre, vil vi kort forklare hvordan du legger til en ny harddisk på en eksisterende Linux-server.

Merk: Hvis du allerede har en partisjon klar for operasjonen, gå til delen som forklarer trinnene for å flytte /home-katalogen i en egen partisjon nedenfor.

Vi antar at du har koblet den nye disken til systemet. På en harddisk bestemmes vanligvis antall partisjoner som skal opprettes, samt partisjonstabellen av disketiketttypen, og de første par bytene med plass vil definere MBR (Master Boot Record ) som lagrer partisjonstabellen så vel som oppstartslasteren (for oppstartbare disker).

Selv om det er mange etiketttyper, godtar Linux bare to: MSDOS MBR (516 byte i størrelse) eller GPT (GUID-partisjonstabell) MBR.

La oss også anta at den nye nye harddisken (/dev/sdb av størrelsen 270 GB brukt for formålet med denne veiledningen, trenger du sannsynligvis en større kapasitet på en server for stor brukerbase.

Først må du angi disketiketttypen ved å bruke fdisk eller parted; vi har brukt GPT-etikettnavnet i dette eksemplet.

parted /dev/sdb mklabel gpt

Merk: fdisk støtter bare MSDOS MBR foreløpig og parted støtter begge etikettene.

Opprett nå den første partisjonen (/dev/sdb1) med størrelse 106GB. Vi har reservert 1024MB plass for MBR.

parted -a cylinder /dev/sdb mkpart primary 1074MB 107GB

Forklarer kommandoen ovenfor:

  • a – alternativ for å spesifisere partisjonsjusteringen.
  • mkpart – underkommando for å lage partisjonen.
  • primær – setter partisjonstype som primær på harddisken (andre verdier er logiske eller utvidede).
  • 1074MB – begynnelsen av partisjonen.
  • 107 GB – slutten av partisjonen.

Sjekk nå ledig plass på disken som følger.

parted /dev/sdb print free

Vi vil opprette en annen partisjon (/dev/sdb2) med størrelse 154GB.

parted -a cylinder /dev/sdb mkpart primary 115GB 268GB

Deretter, la oss angi filsystemtypen på hver partisjon.

mkfs.ext4 /dev/sdb1
mkfs.xfs /dev/sdb2

For å se alle lagringsenheter som er koblet til systemet, skriv.

parted -l

Flytte hjemmekatalog til en dedikert partisjon

Nå har vi lagt til den nye disken og laget den nødvendige partisjonen; det er nå på tide å flytte hjem-mappen til en av partisjonene. For å bruke et filsystem, må det monteres til rotfilsystemet på et monteringspunkt: målkatalogen som /home.

List først filsystembruken ved å bruke df-kommandoen på systemet.

df -l

Vi starter med å lage en ny katalog /srv/home hvor vi kan montere /dev/sdb1 inntil videre.

mkdir -p /srv/home
mount /dev/sdb1 /srv/home 

Flytt deretter innholdet til /home til /srv/home (slik at de praktisk talt blir lagret i /dev/sdb1) ved å bruke rsync-kommandoen eller cp kommando.

rsync -av /home/* /srv/home/
OR
cp -aR /home/* /srv/home/

Etter det vil vi finne forskjellen mellom de to katalogene ved å bruke diff-verktøyet, hvis alt er bra, fortsett til neste trinn.

diff -r /home /srv/home

Etterpå sletter du alt det gamle innholdet i /home som følger.

rm -rf /home/*

Demonter deretter /srv/home.

umount /srv/home

Til slutt må vi montere filsystemet /dev/sdb1 til /home i mellomtiden.

mount /dev/sdb1 /home
ls -l /home

Endringene ovenfor vil bare vare for gjeldende oppstart, legg til linjen under i /etc/fstab for å gjøre endringene permanente.

Bruk følgende kommando for å få partisjonen UUID.

blkid /dev/sdb1

/dev/sdb1: UUID="e087e709-20f9-42a4-a4dc-d74544c490a6" TYPE="ext4" PARTLABEL="primary" PARTUUID="52d77e5c-0b20-4a68-ada4-881851b2ca99"

Når du kjenner partisjonen UUID, åpner du /etc/fstab fil legg til følgende linje.

UUID=e087e709-20f9-42a4-a4dc-d74544c490a6   /home   ext4   defaults   0   2

Forklar feltet i linjen ovenfor:

  • UUID – spesifiserer blokkeringsenheten, du kan alternativt bruke enhetsfilen /dev/sdb1.
  • /home – dette er monteringspunktet.
  • etx4 – beskriver filsystemtypen på enheten/partisjonen.
  • standarder – monteringsalternativer, (her betyr denne verdien rw, suid, dev, exec, auto, nouser og async).
  • 0 – brukt av dumpverktøyet, 0 betyr ikke dump hvis filsystemet ikke er til stede.
  • 2 – brukt av fsck-verktøyet for å oppdage sjekkrekkefølgen for filsystemet, denne verdien betyr å sjekke denne enheten etter rotfilsystemet.

Lagre filen og start systemet på nytt.

Du kan kjøre følgende kommando for å se at katalogen /home har blitt flyttet til en dedikert partisjon.

df -hl

Det er det for nå! For å forstå mer om Linux-filsystemet, les gjennom disse veiledningene knyttet til filsystemadministrasjon på Linux.

  1. Slik sletter du brukerkontoer med hjemmekatalog i Linux
  2. Hva er Ext2, Ext3 og Ext4 og hvordan lage og konvertere Linux-filsystemer
  3. 7 måter å bestemme filsystemtypen i Linux (Ext2, Ext3 eller Ext4)
  4. Slik monterer du eksternt Linux-filsystem eller -katalog ved å bruke SSHFS over SSH

I denne veiledningen forklarte vi deg hvordan du flytter /home-katalogen til en dedikert partisjon i Linux. Du kan dele eventuelle tanker om denne artikkelen via kommentarskjemaet nedenfor.