Vad är det enklaste sättet att ändra storlek på en ext4-partition (eller vilken typ av partition som helst beroende på metod) från kommandoraden (eventuellt med färsta kommandon, men också det lättaste att förstå)?
Att använda ett verktyg som Gparted är uppenbarligen lätt i ett GUI, men hur är det i kommandoraden? Jag antar att textbaserade GUI kan räknas för svaret också eftersom det ” s tekniskt sett fortfarande på kommandoraden. Det behöver bara vara enkelt.
Med partition menar jag en enkel partition på en enda skiva på en persondator (t.ex. på en bärbar dator). Till exempel vill jag ändra storlek på /dev/sda4
. Det finns inga RAID, det finns inte mer än en hårddisk, det är inget komplicerat här. Bara en enkel partition på en enda disk (/ dev / sdaX on / dev / sda).
Kommentarer
- Du vet nog detta, men Gparted är en GUI-frontend till GNU Parted. Tidigare till Parted 2.4 kan du ändra storlek, men detta har sedan tagits bort. Jag misstänker att det enda sättet är att göra det manuellt, ändra storlek på partitionstabellen, skapa enhetskartor och sedan ändra storlek på filsystemet.
- Har du sett detta artikel om att ändra storlek på partitioner?
- Jag har inte ’ inte sett den specifika, men kärnan i det är att du tar bort partitionen och sedan gör en ny av den storlek du vill ha. Men det jag ’ inte gör är att ” tar bort ” vad som helst, bara ändra storlek. Det bästa svaret på den här frågan skulle sannolikt vara ett sätt att ” ändra storlek på ” en partition, inte ta bort en och skapa en ny, och resize2fs-stegen skulle vara helt onödiga och hända i bakgrunden (för att naturligtvis och självklart vill användaren också använda allt utrymmet i partitionen så det borde inte ’ inte vara ett extra steg).
Svar
Du kan använda fdisk
för att ändra partitionstabellen medan du kör. Hänvisa den här länken http://codesilence.wordpress.com/2013/03/14/live-resizing-of-an-ext4-filesytem-on-linux/
Kommentarer
- Du bör lägga relevant information från länken till ditt svar på grund av länkrot. WordPress.com är för närvarande blockerat där jag bor (Kina), så jag kan ’ t ens se ” svara ”.
- @Thushi, utdata från
fdisk -l
paste.ubuntu. com / 24757891 . Jag vill slå samman sda5 och sda6 som sda6. Skadar det mina data? -
fdisk
verkar inte ta hänsyn till använda / fria data – vilket kan leda till potentiell dataförlust (enligt min förståelse). Jag tycker inte ’ att det borde listas som ett ” lätt ” på detta sätt fall.
Svar
Om du kommer att öka storleken på både partitionen och filsystemet kör sedan först fdisk
för att öka partitionens storlek och kör sedan resize2fs
för att öka filsystemets storlek.
Om du kommer att krympa storleken på båda, kör du resize2fs
och kör sedan fdisk
.
Svar
gparted
använder resize2fs
för ändra partitionens storlek. Det tar inte många argument. Nedan följer de som jag har hittat användbara.
-M
krymper till filsystemets minsta storlek.
-p
visar en procentvis indikator.
-P
skriver ut filsystemets minsta storlek och avslutas.
Kommentarer
-
resize2fs
’ förändrar inte partitionstabellen alls, det ändrar storleken på ett filsystem . Efter att du använt det måste du ’ ändra storlek på partitionen som filsystemet fanns på.
Svar
En skriptbar metod, förutsatt att det finns ledigt utrymme direkt efter partitionen som ska ändras:
echo "- +" | sfdisk -N <partnum> /dev/sdX
… följt av resize2fs /dev/sdX<partnum>
.
-
säger till sfdisk att återanvända den befintliga start
-sektorn och +
säger att den ska göra så stort som möjligt med tanke på tillgängligt utrymme.
Kommentarer
- Medan det var konstigt skrämmande gjorde det precis vad jag ville efter
dd
-ing över ett filsystem från enddrescue
bild till en ny enhet som råkar vara större. Tack.
Svar
Jag svarar på det här om du har en liknande situation som min. Jag var tvungen att ändra storlek FileSystem (Ext4) på en dynamisk disk som kör Ubuntu 18.0.4 LTS som gäst. Jag lyckades ändra storlek på disken från värden och sedan ändra storlek på FileSystem.
Att köra vanliga kommandon var inte möjligt. Till exempel:
$ resize2fs /dev/sda2 resize2fs 1.44.1 (24-Mar-2018) The filesystem is already 13180160 (4k) blocks long. Nothing to do!
och fdisk
var ganska komplicerat, förmodligen var jag tvungen att köra en LiveCD för att kunna arbeta på den omonterade disken.
Dessa två kommandon löste mitt problem enkelt och snabbt:
$ 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.
Obs: 2
i det första kommandot, som anger partitionsnumret på enheten /dev/sda
.
Svar
Ändra storlek på en Linux-partition utan att starta om
Inledning
En typisk Linux-server som distribueras från en av ProfitBricks levererad bild har en enda lagringsvolym, /dev/vda
. Om vi tittar på det med fdisk
ser vi att disken är uppdelad i två partitioner. Den första, /dev/vda1
, är startpartitionen där operativsystemet finns. Den andra partitionen, /dev/vda2
, är konfigurerad som växlingsutrymme.
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 exemplet ovan , den totala 50 GB lagringsvolymen är uppdelad i 46 GB användbart utrymme och 4 GB för byte. Vad händer om vi efter att ha klargjort att 46 GB diskutrymme inte räcker, men att vi föredrar att inte lägga till ytterligare lagringsvolym? Målet är att öka mängden diskutrymme tillgängligt på rotfilsystemet. Detta kan åstadkommas med minimal störning. Vi behöver inte måste starta om servern!
Krav
- En Linux-server skapad från en av ProfitBricks levererad bild.
- SSH eller konsolåtkomst (via DCD ) till Linux-servern.
- Kommandot
partprobe
. Kan installeras frånparted
-paketet på de flesta Linux-distributioner. -
fdisk
,swapoff
,mkswap
,swapon
ochresize2fs
kommandon. Troligtvis tillgänglig som standard. - En aktuell ögonblicksbild eller annan säkerhetskopia av systemet du arbetar med. Bara för att vara säker!
Tillägg ytterligare utrymme
För att öka storleken på hårddisken går du in i DCD (Data Center Designer) och uppskalar enheten.
När du har ökat mängden hårddiskutrymme klickar du på ” provisioning ”för att bearbeta ändringen. Det tar ungefär en minut och din hårddisk blir större.
Vi måste sedan stänga av bytet – så se till att du kan leva några minuter utan att byta utrymme:
root@debian:~# swapoff -a
När swap har inaktiverats måste vi konfigurera om partitionerna med fdisk
:
Vi tar bort de två befintliga partitionerna först . Vi kör fdisk /dev/vda
och använder sedan kommandot d
för att ta bort partition 2 och sedan radera partition 1. Följ exemplet nedan:
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 återskapar vi våra partitioner. I exemplet har vi 4 GB swap-utrymme. Så vi måste ha åtminstone så mycket utrymme tillgängligt för den nya swap-partitionen.
Återskapa /dev/vda1
först. Tryck på n för att skapa en ny partition. Ange p för att skapa en primär partition. Vi kan trycka på Ange för att acceptera standardvärdet för 2048 för den första sektorn. Ange sedan en storlek för partitionen. Du kan ange ett värde i GB, så om vi ökar skivan till 100 GB subtraherar vi våra 4 GB för byte och anger + 96G för 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 återskapar vi swappartitionen efter en liknande process. Tryck på n och sedan p för att skapa en ny primärpartition. Tryck på Ange för att acceptera standardvärdet för ”Första sektor”. Vi kan också trycka på Ange igen för att acceptera standardvärdet för ”Senaste 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.
Eftersom den här andra partitionen ska användas för att byta utrymme måste vi ändra partitionstypen. Detta kan göras genom att trycka på t vid prompt fdisk
. Vi trycker sedan på 2 för att välja den andra partitionen.Om du vill se listan över tillgängliga partitionstyper, tryck på L , annars anger du 82 för att välja ”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
informerar oss hjälpsamt om att vi har ändrat partitionstypen med meddelandet:
Changed type of partition "Linux" to "Linux swap / Solaris".
Därefter sparar vi med w
-kommando och returneras till en skalprompt:
Command (m for help): w
Du kan få ett sådant meddelande före skalet 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).
Låter oss avstå från omstart och istället berätta kärnan om de nya partitionerna med partprobe
:
root@debian:~# partprobe
Vi ska återvända till shell-prompten utan utdata från partprobe
.
Nu måste vi ändra storlek på vårt 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
Fileyst em på /dev/vda1
är nu 25165824 (4k) block långt.
Initiera den nya bytesplatsen för /dev/vda2
:
root@debian:~# mkswap /dev/vda2 Setting up swapspace version 1, size = 4193276 KiB no label, UUID=c55c25a2-a386-4653-8455-4d9030586dd2
Slutligen redigerar vi /etc/fstab
och ersätter den gamla UUID med den nya som returneras i utdata från mkswap
-kommando. Raden som ska ändras har inget värde för ”monteringspunkt” och har ”typ” inställd på byt .
# /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 av /etc/fstab
måste vi aktivera byte igen:
root@debian:~# swapon -a
Verifiera
Vi kan verifiera den nya större diskstorleken genom att använda df
och / 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 också bekräfta att servern inte startades om genom att titta på utdata från uptime
:
$ uptime 23:54:21 up 7 days, 1:15, 1 user, load average: 0.00, 0.01, 0.05
Sammanfattning
Vi har lyckades öka mängden diskutrymme tillgängligt på vår Linux-server.
Referens
https://devops.ionos.com/tutorials/increase-the-size-of-a-linux-root-partition-without-rebooting/
ELLER