Care este cel mai simplu mod de a redimensiona o partiție ext4 (sau orice tip de partiție în funcție de metodă) din linia de comandă (potențial cu cele mai puține comenzi, dar și cel mai ușor de înțeles)?
Utilizarea unui instrument precum Gparted este evident ușoară într-o interfață grafică, dar ce se întâmplă în linia de comandă? Cred că interfețele grafice bazate pe text pot conta și pentru răspuns, deoarece Tehnic este încă în linia de comandă. Trebuie doar să fie ușor.
Prin partiție mă refer la o partiție simplă pe un singur disc al unui computer personal (de exemplu, pe un laptop). De exemplu, vreau să redimensionez /dev/sda4
. Nu există RAID, nu există mai mult de o unitate de disc, nu este nimic complicat aici. Doar o partiție simplă pe un singur disc (/ dev / sdaX on / dev / sda).
Comentarii
- Probabil știți acest lucru, dar Gparted este un front-end GUI pentru GNU Parted. Înainte de Parted 2.4, ați putea redimensiona, dar acest lucru a fost eliminat de atunci. Bănuiesc că singura modalitate este să o faci manual, să redimensionezi tabelul de partiții, să creezi hărți de dispozitiv, apoi să redimensionezi sistemul de fișiere.
- Ai văzut asta articol despre redimensionarea partițiilor?
- ‘ nu l-am văzut pe cel specific, dar esența acestuia este că ștergeți partiția, apoi faceți una nouă din dimensiunea dorită. Dar ceea ce fac ‘ în mod inerent nu este ” ștergerea ” orice, doar redimensionare. Cel mai bun răspuns la această întrebare ar fi probabil o modalitate de ” redimensionare ” o partiție, nu ștergeți una și creați una nouă, iar pașii resize2fs ar fi complet inutili și se vor întâmpla în fundal (deoarece în mod natural și evident utilizatorul dorește să utilizeze și tot spațiul din partiție deci nu ar trebui să ‘ să fie un pas suplimentar).
Răspuns
Puteți utiliza fdisk
pentru a vă schimba tabela de partiții în timpul rulării. Consultați acest link http://codesilence.wordpress.com/2013/03/14/live-resizing-of-an-ext4-filesytem-on-linux/
Comentarii
- Ar trebui să introduceți informațiile relevante din link, în răspunsul dvs., din cauza putrezirii linkului. De asemenea, wordpress.com este blocat în prezent unde locuiesc (China), așa că nu pot ‘ chiar să văd ” răspunsul „.
- @Thushi, ieșire
fdisk -l
paste.ubuntu. com / 24757891 . Vreau să fuzionez sda5 și sda6 ca sda6. Îmi deteriorează datele? -
fdisk
nu pare să ia în considerare datele utilizate / gratuite – ceea ce ar putea duce la pierderea potențială a datelor (după cum înțeleg). Nu ‘ nu cred că ar trebui să fie listat ca ” ușor ” în acest mod caz.
Răspuns
Dacă vei crește dimensiunea atât a partiției, cât și a sistemului de fișiere , apoi executați mai întâi fdisk
pentru a crește dimensiunea partiției, apoi executați resize2fs
pentru a crește dimensiunea sistemului de fișiere.
Dacă „veți micșora dimensiunea ambelor, rulați mai întâi resize2fs
și apoi rulați fdisk
.
Răspuns
gparted
utilizează resize2fs
modificați dimensiunea partiției. Nu ia multe argumente. Mai jos sunt cele pe care le-am considerat utile.
-M
se micșorează la dimensiunea minimă a sistemului de fișiere.
-p
afișează un indicator procentual.
-P
tipărește dimensiunea și ieșirile minime ale sistemului de fișiere.
Comentarii
-
resize2fs
nu ‘ nu modifică deloc tabelul de partiții, acesta modifică dimensiunea unui sistem de fișiere . După ce îl utilizați, ‘ va trebui să redimensionați partiția pe care se afla sistemul de fișiere în consecință.
Răspuns
O metodă scriptabilă, presupunând că există spațiu liber direct după partiția de redimensionat:
echo "- +" | sfdisk -N <partnum> /dev/sdX
… urmat de resize2fs /dev/sdX<partnum>
.
-
îi spune sfdisk să refolosească sectorul start
existent, iar +
îi spune să facă cât mai mare posibil, având în vedere spațiul disponibil.
Comentarii
- Deși ciudat de terifiant, acest lucru a făcut exact ceea ce îmi doream după
dd
-ing peste un sistem de fișiere de la o imagineddrescue
la o unitate nouă care s-a întâmplat să fie mai mare. Mulțumesc.
Răspuns
Răspund la asta în cazul în care aveți o situație similară cu a mea. A trebuit să redimensionați FileSystem (Ext4) pe un disc dinamic care rulează Ubuntu 18.0.4 LTS ca invitat. Am reușit să redimensionez discul de la gazdă și apoi să redimensionez sistemul de fișiere.
Executarea comenzilor uzuale nu a fost posibilă. De exemplu:
$ resize2fs /dev/sda2 resize2fs 1.44.1 (24-Mar-2018) The filesystem is already 13180160 (4k) blocks long. Nothing to do!
și fdisk
a fost destul de complicat, probabil că a trebuit să rulez un LiveCD pentru a lucrează pe discul nemontat.
Aceste două comenzi au rezolvat problema mea ușor și rapid:
$ 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.
Notă: 2
în prima comandă, care indică numărul partiției de pe dispozitiv /dev/sda
.
Răspuns
Redimensionați o partiție rădăcină Linux fără repornire
Introducere
Un server Linux tipic implementat dintr-o imagine furnizată de ProfitBricks are un singur volum de stocare, /dev/vda
. Dacă aruncăm o privire la asta folosind fdisk
, vom vedea că discul este împărțit în două partiții. Primul, /dev/vda1
, este partiția de boot în care se află sistemul de operare. A doua partiție, /dev/vda2
, este configurată ca spațiu de swap.
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
În exemplul de mai sus , volumul total de stocare de 50 GB este împărțit în 46 GB spațiu utilizabil și 4 GB pentru swap. Ce se întâmplă dacă după provizionare constatăm că 46 GB de spațiu pe disc nu sunt suficiente, dar preferăm să nu adăugăm un volum suplimentar de stocare? Scopul este de a crește cantitatea de spațiu pe disc disponibil pe sistemul de fișiere rădăcină. Acest lucru poate fi realizat cu o întrerupere minimă. nu trebuie să repornim serverul!
Cerințe
- Un server Linux creat dintr-o imagine furnizată de ProfitBricks.
- Acces SSH sau consolă (prin DCD ) pe serverul Linux.
- Comanda
partprobe
. Poate fi instalat din pachetulparted
pe majoritatea distribuțiilor Linux. -
fdisk
,swapoff
,mkswap
,swapon
și comenzileresize2fs
. Este probabil disponibil în mod prestabilit. - Un instantaneu curent sau altă copie de rezervă a sistemului la care lucrați. Doar pentru a fi în siguranță!
Furnizare spațiu suplimentar
Pentru a mări dimensiunea unității de disc, accesați DCD (Data Center Designer) și modernizați unitatea.
După ce ați mărit spațiul pe unitate, faceți clic pe „ aprovizionare „pentru a procesa schimbarea. Durează aproximativ un minut, iar unitatea dvs. de disc este mai mare.
Atunci trebuie să oprim schimbul – deci asigurați-vă că puteți trăi câteva minute fără spațiu de schimb:
root@debian:~# swapoff -a
Odată ce swap-ul a fost dezactivat, trebuie să reconfigurăm partițiile folosind fdisk
:
Mai întâi vom șterge cele două partiții existente . Rulăm fdisk /dev/vda
și apoi folosim comanda d
pentru a șterge partiția 2, apoi ștergeți partiția 1. Urmați exemplul de mai jos:
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.
Acum ne recreăm partițiile. În exemplu, avem 4 GB spațiu swap. Deci, trebuie să păstrăm cel puțin atât de mult spațiu disponibil pentru noua partiție swap.
Recreați mai întâi /dev/vda1
. Apăsați n pentru a crea o nouă partiție. Introduceți p pentru a crea o partiție principală. Putem apăsa Introduceți pentru a accepta valoarea implicită a 2048 pentru primul sector. Apoi introduceți o dimensiune pentru partiție. Puteți introduce o valoare în GB, deci dacă creștem discul la 100 GB, scădem 4 GB pentru swap și introducem + 96G pentru 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.
Acum recreăm partiția swap după un proces simalar. Apăsați n și apoi p pentru a crea o nouă partiție primară. Apăsați Introduceți pentru a accepta valoarea implicită pentru „Primul sector”. De asemenea, putem apăsa Introduceți din nou pentru a accepta valoarea implicită pentru „Ultimul sector”.
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.
Deoarece această a doua partiție va fi utilizată pentru spațiul swap, trebuie să schimbăm tipul partiției. Acest lucru se poate face apăsând t la promptul fdisk
. Apăsăm apoi 2 pentru a selecta a doua partiție.Dacă doriți să vedeți lista tipurilor de partiții disponibile, apăsați L , altfel introduceți 82 pentru a selecta „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
ne informează cu ajutor că am schimbat tipul partiției cu mesajul:
Changed type of partition "Linux" to "Linux swap / Solaris".
După aceea, salvăm folosind w
și sunt returnate la un prompt de shell:
Command (m for help): w
Este posibil să primiți un mesaj ca acesta înainte de 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).
Permite să renunțăm la repornire și în schimb să spunem nucleului despre noile partiții folosind partprobe
:
root@debian:~# partprobe
Ar trebui să ne întoarcem la promptul shell fără ieșire de la partprobe
.
Acum trebuie să ne redimensionăm sistemul de fișiere pe /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
Filesyst em on /dev/vda1
are acum 25165824 (4k) blocuri.
Inițializați noua locație de swap a /dev/vda2
:
root@debian:~# mkswap /dev/vda2 Setting up swapspace version 1, size = 4193276 KiB no label, UUID=c55c25a2-a386-4653-8455-4d9030586dd2
În cele din urmă edităm /etc/fstab
și înlocuim vechiul UUID cu cel nou returnat în ieșirea mkswap
. Linia de modificat nu are valoare pentru „punct de montare” și are „tip” setat la 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
După editarea /etc/fstab
, trebuie să activăm din nou swap-ul:
root@debian:~# swapon -a
Verificați
Putem verifica noua dimensiune a discului mai mare utilizând df
și / sau 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
De asemenea, putem confirma că serverul nu a fost repornit uitându-se la ieșirea uptime
:
$ uptime 23:54:21 up 7 days, 1:15, 1 user, load average: 0.00, 0.01, 0.05
Rezumat
Avem a crescut cu succes cantitatea de spațiu disponibil pe serverul nostru Linux.
Referință
https://devops.ionos.com/tutorials/increase-the-size-of-a-linux-root-partition-without-rebooting/
SAU