Hvad er den nemmeste måde at ændre størrelsen på en ext4-partition (eller en hvilken som helst type partition afhængigt af metoden) fra kommandolinjen (potentielt med færrest kommandoer, men også den nemmeste at forstå)?
At bruge et værktøj som Gparted er selvfølgelig let i en GUI, men hvad med kommandolinjen? Jeg tror tekstbaserede GUIer også kan tælle med svaret, da det ” s teknisk set stadig i kommandolinjen. Det skal bare være let.
Med partition mener jeg en simpel partition på en enkelt disk på en personlig computer (f.eks. På en bærbar computer). For eksempel vil jeg ændre størrelsen på /dev/sda4
. Der er ingen RAIDer, der er ikke mere end et diskdrev, der er ikke noget kompliceret her. Bare en simpel partition på en enkelt disk (/ dev / sdaX on / dev / sda).
Kommentarer
- Du ved sikkert dette, men Gparted er en GUI-frontend til GNU Parted. Tidligere til Parted 2.4 kunne du ændre størrelse, men dette er siden blevet fjernet. Jeg formoder, at den eneste måde er at gøre det manuelt, ændre størrelsen på partitionstabellen, oprette enhedskort og derefter ændre størrelsen på filsystemet.
- Har du set dette artikel om ændring af størrelse på partitioner?
- Jeg har ikke ‘ ikke set den specifikke, men kernen i det er, at du sletter partitionen og derefter opretter en ny af den størrelse, du ønsker. Men hvad jeg ‘ jeg iboende gør, er ikke ” sletning af ” hvad som helst, bare størrelse. Det bedste svar på dette spørgsmål ville sandsynligvis være en måde at ” ændre størrelse på ” en partition, ikke slet en og opret en ny, og resize2fs-trinene ville være helt unødvendige og ske i baggrunden (fordi brugeren naturligvis og naturligvis også vil bruge alt rummet i partitionen så det skal ikke være ‘ et ekstra trin).
Svar
Du kan bruge fdisk
til at ændre din partitionstabel, mens du kører. Henvis dette link http://codesilence.wordpress.com/2013/03/14/live-resizing-of-an-ext4-filesytem-on-linux/
Kommentarer
- Du skal placere de relevante oplysninger fra linket i dit svar på grund af linkrot. WordPress.com er i øjeblikket blokeret, hvor jeg bor (Kina), så jeg kan ‘ ikke engang se ” svaret “.
- @Thushi, output fra
fdisk -l
paste.ubuntu. com / 24757891 . Jeg vil flette sda5 og sda6 som sda6. Skader det mine data? -
fdisk
synes ikke at tage hensyn til brugte / gratis data – hvilket kan føre til potentielt datatab (efter min forståelse). Jeg synes ikke ‘ at det skal opføres som en ” let ” måde på dette case.
Svar
Hvis du vil øge størrelsen på både partitionen og filsystemet kør derefter først fdisk
for at øge størrelsen på partitionen, og kør derefter resize2fs
for at øge filsystemets størrelse.
Hvis du vil krympe størrelsen på begge dele, skal du køre resize2fs
først og derefter køre fdisk
.
Svar
gparted
bruger resize2fs
til ændre partitionens størrelse. Det kræver ikke mange argumenter. Nedenfor er dem, som jeg har fundet nyttige.
-M
krymper til filsystemets mindste størrelse.
-p
viser en procentvis indikator.
-P
udskriver filsystemets mindste størrelse og afslutter.
Kommentarer
-
resize2fs
ændrer ‘ slet ikke partitionstabellen, det ændrer størrelsen på et filsystem . Efter at have brugt det skal du ‘ ændre størrelsen på den partition, som filsystemet var på i overensstemmelse hermed.
Svar
En skripterbar metode, forudsat at der er ledig plads direkte efter den partition, der skal ændres:
echo "- +" | sfdisk -N <partnum> /dev/sdX
… efterfulgt af resize2fs /dev/sdX<partnum>
.
-
beder sfdisk om at genbruge den eksisterende start
sektor, og +
fortæller det, at det skal gøre så stort som muligt i betragtning af den ledige plads.
Kommentarer
- Mens det var mærkeligt skræmmende, gjorde det nøjagtigt hvad jeg ønskede efter
dd
-ing over et filsystem fra etddrescue
-billede til et nyt drev, der tilfældigvis var større. Tak skal du have.
Svar
Jeg svarer på dette, hvis du har en lignende situation som min. Jeg var nødt til at ændre størrelse FileSystem (Ext4) på en dynamisk disk, der kører Ubuntu 18.0.4 LTS som gæst. Det lykkedes mig at ændre størrelsen på disken fra værten og derefter ændre størrelsen på FileSystem.
At køre de sædvanlige kommandoer var ikke mulig. For eksempel:
$ resize2fs /dev/sda2 resize2fs 1.44.1 (24-Mar-2018) The filesystem is already 13180160 (4k) blocks long. Nothing to do!
og fdisk
var ret kompliceret, sandsynligvis måtte jeg også køre en LiveCD for at arbejde på den umonterede disk.
Disse to kommandoer løste mit problem nemt og hurtigt:
$ growpart /dev/sda 2 CHANGED: partition=2 start=4096 old: size=105441280 end=105445376 new: size=409595871,end=409599967 $ resize2fs /dev/sda2 resize2fs 1.44.1 (24-Mar-2018) Filesystem at /dev/sda2 is mounted on /; on-line resizing required old_desc_blocks = 7, new_desc_blocks = 25 The filesystem on /dev/sda2 is now 51199483 (4k) blocks long.
Bemærk: 2
i den første kommando, som angiver partitionsnummeret på enheden /dev/sda
.
Svar
Ændr størrelse på en Linux-rodpartition uden genstart
Introduktion
En typisk Linux-server, der er implementeret fra et ProfitBricks-leveret billede, har en enkelt lagervolumen, /dev/vda
. Hvis vi ser på det ved hjælp af fdisk
, vil vi se, at disken er opdelt i to partitioner. Den første, /dev/vda1
, er bootpartitionen, hvor operativsystemet findes. Den anden partition, /dev/vda2
, er konfigureret som swap-plads.
root@debian:~# fdisk -l /dev/vda Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x0041f8a8
Device Boot Start End Sectors Size Id Type /dev/vda1 2048 96471039 96468992 46G 83 Linux /dev/vda2 96471040 104857599 8386560 4G 82 Linux swap / Solaris
I eksemplet ovenfor , den samlede 50 GB lagervolumen er opdelt i 46 GB anvendelig plads og 4 GB til swap. Hvad hvis vi efter klargøring finder ud af, at 46 GB diskplads ikke er nok, men vi foretrækker ikke at tilføje en ekstra lagervolumen? Målet er at øge mængden af ledig diskplads på rodfilsystemet. Dette kan opnås med minimal forstyrrelse. Vi har ikke behov for at genstarte serveren!
Krav
- En Linux-server oprettet fra et billede, der leveres af ProfitBricks.
- SSH- eller konsoladgang (via DCD ) til Linux-serveren.
- Kommandoen
partprobe
. Kan installeres fraparted
-pakken på de fleste Linux-distributioner. -
fdisk
,swapoff
,mkswap
,swapon
ogresize2fs
kommandoer. Sandsynligvis tilgængelig som standard. - Et aktuelt øjebliksbillede eller anden sikkerhedskopi af det system, du arbejder på. Bare for at være sikker!
Bestemmelse af ekstra mellemrum
For at øge harddiskens størrelse skal du gå ind i DCD (Data Center Designer) og opskalere drevet.
Når du har øget mængden af drevplads, skal du klikke på ” klargøring “til at behandle ændringen. Det tager cirka et minut, og din harddisk er større.
Vi skal derefter slukke for swap – så sørg for at du kan leve et par minutter uden swap-plads:
root@debian:~# swapoff -a
Når swap er deaktiveret, er vi nødt til at omkonfigurere partitionerne ved hjælp af fdisk
:
Vi sletter først de to eksisterende partitioner . Vi kører fdisk /dev/vda
og bruger derefter d
kommandoen til at slette partition 2 og derefter slette partition 1. Følg eksemplet nedenfor:
root@debian:~# fdisk /dev/vda Command (m for help): d Partition number (1,2, default 2):
Partition 2 has been deleted.
Command (m for help): d Selected partition 1 Partition 1 has been deleted.
Nu genskaber vi vores partitioner. I eksemplet har vi 4 GB swap-plads. Så vi er nødt til at holde mindst så meget plads til rådighed for den nye swap-partition.
Gendan /dev/vda1
først. Tryk på n for at oprette en ny partition. Indtast p for at oprette en primær partition. Vi kan trykke på Indtast for at acceptere standardværdien af 2048 for den første sektor. Indtast derefter en størrelse for partitionen. Du kan indtaste en værdi i GB, så hvis vi øger disken til 100 GB, trækker vi vores 4 GB til swap og indtaster + 96G til 96 GB.
Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-209715199, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-209715199, default 209715199): +96G Created a new partition 1 of type "Linux" and of size 96 GiB.
Nu genskaber vi swap-partitionen efter en lignende proces. Tryk på n og derefter p for at oprette en ny primær partition. Tryk på Indtast for at acceptere standardværdien for “Første sektor”. Vi kan også trykke på Indtast igen for at acceptere standardværdien for “Sidste sektor”.
Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): p Partition number (2-4, default 2): 2 First sector (201328640-209715199, default 201328640): Last sector, +sectors or +size{K,M,G,T,P} (201328640-209715199, default 209715199): Created a new partition 2 of type "Linux" and of size 4 GiB.
Da denne anden partition skal bruges til at bytte plads, er vi nødt til at ændre partitionstypen. Dette kan gøres ved at trykke på t ved fdisk
-prompten. Vi trykker derefter på 2 for at vælge den anden partition.Hvis du vil se listen over tilgængelige partitionstyper, skal du trykke på L , ellers indtast 82 for at vælge “Linux swap / Solaris”.
Command (m for help): t Partition number (1,2, default 2): 2 Partition type (type L to list all types): L 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 84 OS/2 hidden or c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx 5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data 6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility 8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt 9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi ea Rufus alignment e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD eb BeOS fs f W95 Ext"d (LBA) 54 OnTrackDM6 a6 OpenBSD ee GPT 10 OPUS 55 EZ-Drive a7 NeXTSTEP ef EFI (FAT-12/16/ 11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f0 Linux/PA-RISC b 12 Compaq diagnost 5c Priam Edisk a9 NetBSD f1 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f4 SpeedStor 16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ f2 DOS secondary 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fb VMware VMFS 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fc VMware VMKCORE 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fd Linux raid auto 1c Hidden W95 FAT3 75 PC/IX bc Acronis FAT32 L fe LANstep 1e Hidden W95 FAT1 80 Old Minix be Solaris boot ff BBT Partition type (type L to list all types): 82
fdisk
informerer os nyttigt om, at vi har ændret partitionstypen med beskeden:
Changed type of partition "Linux" to "Linux swap / Solaris".
Derefter gemmer vi ved hjælp af w
kommando og returneres til en shellprompt:
Command (m for help): w
Du får muligvis en besked som denne før shell prompt:
The partition table has been altered. Calling ioctl() to re-read partition table. Re-reading the partition table failed.: Device or resource busy The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
Lad os afstå fra genstart og i stedet fortælle kernen om de nye partitioner ved hjælp af partprobe
:
root@debian:~# partprobe
Vi skal returneres til shellprompten uden output fra partprobe
.
Nu skal vi ændre størrelsen på vores filsystem på /dev/vda1
:
root@debian:~# resize2fs /dev/vda1 resize2fs 1.42.12 (29-Aug-2014) Filesystem at /dev/vda1 is mounted on /; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 3
Filsystemet em på /dev/vda1
er nu 25165824 (4k) blokke lang.
Initialiser den nye swap-placering af /dev/vda2
:
root@debian:~# mkswap /dev/vda2 Setting up swapspace version 1, size = 4193276 KiB no label, UUID=c55c25a2-a386-4653-8455-4d9030586dd2
Endelig redigerer vi /etc/fstab
og erstatter den gamle UUID med den nye, der returneres i output af mkswap
kommando. Linjen, der skal ændres, har ingen værdi for “monteringspunkt” og har “type” indstillet til swap .
# /etc/fstab: static file system information. # # Use "blkid" to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> UUID=332f8fb5-ff1f-4297-b512-f2c93a277296 / ext4 errors=remount-ro 0 1 /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0 UUID=c55c25a2-a386-4653-8455-4d9030586dd2 none swap sw 0 0
Efter redigering af /etc/fstab
skal vi aktivere swap igen:
root@debian:~# swapon -a
Bekræft
Vi kan verificere den nye større diskstørrelse ved at bruge df
og / eller fdisk
.
Device Boot Start End Sectors Size Id Type /dev/vda1 2048 201328639 201326592 96G 83 Linux /dev/vda2 201328640 209715199 8386560 4G 82 Linux swap / Solaris
Vi kan også bekræfte, at serveren blev ikke genstartet ved at se på output fra uptime
:
$ uptime 23:54:21 up 7 days, 1:15, 1 user, load average: 0.00, 0.01, 0.05
Oversigt
Vi har med succes øget mængden af ledig plads på vores Linux-server.
Reference
https://devops.ionos.com/tutorials/increase-the-size-of-a-linux-root-partition-without-rebooting/
ELLER