Sådan flyttes hjemmekatalog til ny partition eller disk i Linux


På ethvert Linux-system skal et af de mapper, der helt sikkert vokser i størrelse, være mappen /home . Dette skyldes, at systemkonti (brugere) mapper vil være i/home undtagen root-konto - her gemmer brugere løbende dokumenter og andre filer.

En anden vigtig mappe med samme opførsel er /var , den indeholder logfiler, hvis størrelse gradvist vil øges, efterhånden som systemet fortsætter med at køre, såsom logfiler, webfiler, print-spoolfiler osv.

Når disse mapper fyldes op, kan dette forårsage kritiske problemer på rodfilsystemet, hvilket resulterer i systemstartfejl eller andre relaterede problemer. Nogle gange kan du kun bemærke dette efter installation af dit system og konfiguration af alle mapper på rodfilsystemet/partitionen.

I denne vejledning viser vi, hvordan du flytter hjemmekataloget til en dedikeret partition muligvis på en ny lagerdisk i Linux.

Installation og partitionering af en ny harddisk i Linux

Inden vi fortsætter, forklarer vi kort, hvordan du tilføjer en ny harddisk til en eksisterende Linux-server.

Bemærk: Hvis du allerede har en partition klar til operationen, skal du gå til det afsnit, der forklarer trinene til flytning af /home -mappen i en egen partition nedenfor.

Vi antager, at du har knyttet den nye disk til systemet. Antallet af partitioner, der skal oprettes såvel som partitionstabellen, bestemmes normalt af en harddisk af disketikettypen, og de første par byte plads definerer MBR (Master Boot Record), der gemmer partitionstabellen såvel som boot loader (til disk, der kan startes).

Selvom der er mange etikettyper, accepterer Linux kun to: MSDOS MBR (516 bytes i størrelse) eller GPT (GUID Partition Table) MBR.

Lad os også antage, at den nye nye harddisk (/ dev/sdb i størrelse 270 GB, der bruges til formålet med denne vejledning, sandsynligvis har du brug for en større kapacitet på en server til en større brugerbase.

Først skal du skilles; vi har brugt GPT-etiketnavn i dette eksempel.

# parted /dev/sdb mklabel gpt

Bemærk: skilt understøtter begge etiketter.

Opret nu den første partition (/ dev/sdb1) med størrelse 106GB. Vi har reserveret 1024 MB plads til MBR.

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

Forklaring af kommandoen ovenfor:

  • a - mulighed for at specificere partitionsjusteringen.
  • mkpart - underkommando for at oprette partitionen.
  • primær - indstiller partitionstype som primær på harddisken (andre værdier er logiske eller udvidede).
  • 1074MB - begyndelsen af partitionen.
  • 107GB - slutningen af partitionen.

Kontroller nu ledig plads på disken som følger.

# parted /dev/sdb print free

Vi opretter en anden partition (/ dev/sdb2) med størrelse 154GB.

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

Lad os derefter indstille filsystemtypen på hver partition.

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

For at se alle lagerenheder, der er tilsluttet systemet, skal du skrive.

# parted -l

Nu har vi tilføjet den nye disk og oprettet den nødvendige partition; det er nu tid til at flytte hjemmemappen til en af partitionerne. For at bruge et filsystem skal det monteres på rodfilsystemet ved et monteringspunkt: målkataloget som/home.

Først skal du liste filsystemforbruget ved hjælp af df-kommandoen på systemet.

# df -l

Vi starter med at oprette en ny mappe/srv/home, hvor vi indtil videre kan montere/dev/sdb1.

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

Flyt derefter indholdet af/home til/srv/home (så de gemmes praktisk i/dev/sdb1) ved hjælp af cp-kommandoen.

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

Derefter finder vi diff-værktøjet, hvis alt er i orden, fortsæt til næste trin.

# diff -r /home /srv/home

Slet derefter alt det gamle indhold i/hjemmet som følger.

# rm -rf /home/*

Næste afmontering/srv/hjem.

# umount /srv/home

Endelig er vi nødt til at montere filsystemet/dev/sdb1 til/home i mellemtiden.

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

Ovenstående ændringer varer kun for den aktuelle opstart, tilføj linjen nedenfor i/etc/fstab for at gøre ændringerne permanente.

Brug følgende kommando for at få partitionen 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 kender partitionens UUID, skal du åbne/etc/fstab-filen tilføje følgende linje.

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

Forklaring af feltet i linjen ovenfor:

  • UUID - angiver blokken, du kan alternativt bruge enhedsfilen/dev/sdb1.
  • /hjem - dette er monteringspunktet.
  • etx4 - beskriver filsystemtypen på enheden/partitionen.
  • standardindstillinger - monteringsindstillinger, (her betyder denne værdi rw, suid, dev, exec, auto, nouser og async).
  • 0 - bruges af dump-værktøj, 0 betyder ikke dump, hvis filsystemet ikke er til stede.
  • 2 - bruges af fsck-værktøjet til at opdage rækkefølge for filsystemkontrol, denne værdi betyder at kontrollere denne enhed efter rodfilsystem.

Gem filen, og genstart systemet.

Du kan køre følgende kommando for at se, at/hjemmekataloget er flyttet med succes til en dedikeret partition.

# df -hl

Det er det for nu! For at forstå mere om Linux-filsystem skal du læse gennem disse vejledninger vedrørende filsystemstyring på Linux.

  1. Sådan slettes brugerkonti med hjemmekatalog i Linux
  2. Hvad er Ext2, Ext3 & Ext4 og hvordan man opretter og konverterer Linux-filsystemer
  3. 7 måder at bestemme filsystemtypen i Linux (Ext2, Ext3 eller Ext4)
  4. Sådan monteres eksternt Linux-filsystem eller bibliotek ved hjælp af SSHFS over SSH

I denne vejledning forklarede vi dig, hvordan du flytter/home-biblioteket til en dedikeret partition i Linux. Du kan dele eventuelle tanker vedrørende denne artikel via kommentarformularen nedenfor.