Jaki jest najłatwiejszy sposób zmiany rozmiaru partycji ext4 (lub partycji dowolnego typu w zależności od metody) z wiersza poleceń (potencjalnie przy najmniejszej liczbie poleceń, ale także najłatwiejszy do zrozumienia)?
Korzystanie z narzędzia takiego jak Gparted jest oczywiście łatwe w GUI, ale co z wierszem poleceń? Wydaje mi się, że GUI oparte na tekście również może liczyć na odpowiedź, ponieważ to ” s technicznie nadal w wierszu poleceń. Po prostu musi być łatwe.
Przez partycję rozumiem prostą partycję na jednym dysku komputera osobistego (np. Na laptopie). Na przykład chcę zmienić rozmiar /dev/sda4
. Nie ma macierzy RAID, nie ma więcej niż jednego dysku, nie ma tu nic skomplikowanego. Po prostu zwykła partycja na jednym dysku (/ dev / sdaX na / dev / sda).
Komentarze
- Prawdopodobnie wiesz o tym, ale Gparted jest interfejsem GUI dla GNU Parted. Przed wersją Parted 2.4 można było zmienić rozmiar, ale zostało to usunięte. Podejrzewam, że jedynym sposobem jest zrobienie tego ręcznie, zmiana rozmiaru tabeli partycji, utworzenie map urządzeń, a następnie zmiana rozmiaru systemu plików.
- Czy widziałeś już artykuł na temat zmiany rozmiaru partycji?
- Nie ' nie widziałem tej konkretnej, ale sednem tego jest to, że usuwasz partycję, a następnie tworzysz nową rozmiar, jaki chcesz. Ale to, co robię ' m, to nie jest ” usuwanie ” cokolwiek, po prostu zmień rozmiar. Najlepszą odpowiedzią na to pytanie będzie prawdopodobnie ” zmiana rozmiaru ” partycję, nie usuwaj jednej i utwórz nową, a kroki resize2fs byłyby całkowicie niepotrzebne i odbywałyby się w tle (ponieważ oczywiście użytkownik chce również wykorzystać całą przestrzeń na partycji więc nie powinno to być ' dodatkowym krokiem).
Odpowiedź
Możesz użyć fdisk
, aby zmienić tablicę partycji podczas działania. Skorzystaj z tego linku http://codesilence.wordpress.com/2013/03/14/live-resizing-of-an-ext4-filesytem-on-linux/
Komentarze
- Powinieneś umieścić odpowiednie informacje z linku w swojej odpowiedzi, z powodu gnicia linków. Ponadto witryna wordpress.com jest obecnie zablokowana w moim miejscu zamieszkania (Chiny), więc nie mogę ' nie zobaczyć nawet ” odpowiedzi „.
- @Thushi, wyjście
fdisk -l
paste.ubuntu. com / 24757891 . Chcę połączyć sda5 i sda6 jako sda6. Czy powoduje to uszkodzenie moich danych? -
fdisk
nie wydaje się uwzględniać danych używanych / wolnych – co może prowadzić do potencjalnej utraty danych (w moim rozumieniu). Nie ' nie sądzę, aby to było ” łatwe ” w ten sposób przypadku.
Odpowiedź
Jeśli „zamierzasz zwiększyć rozmiar zarówno partycji, jak i systemu plików , a następnie najpierw uruchom fdisk
, aby zwiększyć rozmiar partycji, a następnie uruchom resize2fs
, aby zwiększyć rozmiar systemu plików.
Jeśli zamierzasz „zmniejszyć rozmiar obu, uruchom najpierw resize2fs
, a następnie fdisk
.
Odpowiedź
gparted
używa resize2fs
do zmienić rozmiar partycji. Nie przyjmuje wielu argumentów. Poniżej znajdują się te, które uznałem za przydatne.
-M
zmniejsza się do minimalnego rozmiaru systemu plików.
-p
pokazuje wskaźnik procentowy.
-P
wyświetla minimalny rozmiar systemu plików i kończy działanie.
Komentarze
-
resize2fs
nie ' w ogóle nie zmienia tablicy partycji, to zmienia rozmiar systemu plików . Po jego użyciu ' będziesz musiał odpowiednio zmienić rozmiar partycji, na której znajdował się system plików.
Odpowiedź
Metoda skryptowa, zakładająca, że jest wolne miejsce bezpośrednio za partycją, której rozmiar ma zostać zmieniony:
echo "- +" | sfdisk -N <partnum> /dev/sdX
… a następnie resize2fs /dev/sdX<partnum>
.
-
mówi sfdisk, aby ponownie wykorzystał istniejący start
sektor, a +
mówi mu, aby utworzył tak duży, jak to możliwe, biorąc pod uwagę dostępne miejsce.
Komentarze
- Chociaż dziwnie przerażające, zrobiło to dokładnie to, czego chciałem po
dd
-przechodzenie przez system plików z obrazuddrescue
na nowy dysk, który okazał się być większy. Dziękuję Ci.
Odpowiedź
Odpowiadam na to, gdybyś miał podobną sytuację jak moja. Musiałem zmienić rozmiar FileSystem (Ext4) na dysku dynamicznym z systemem Ubuntu 18.0.4 LTS jako gość. Udało mi się zmienić rozmiar dysku z hosta, a następnie zmienić rozmiar systemu plików.
Uruchomienie zwykłych poleceń nie było możliwe. Na przykład:
$ resize2fs /dev/sda2 resize2fs 1.44.1 (24-Mar-2018) The filesystem is already 13180160 (4k) blocks long. Nothing to do!
i fdisk
było dość skomplikowane, również prawdopodobnie musiałem uruchomić LiveCD, aby pracować na niezamontowanym dysku.
Te dwa polecenia rozwiązały mój problem łatwo i szybko:
$ 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.
Uwaga: 2
w pierwszym poleceniu, które wskazuje numer partycji na urządzeniu /dev/sda
.
Odpowiedź
Zmień rozmiar głównej partycji Linuksa bez ponownego uruchamiania
Wprowadzenie
Typowy serwer Linux wdrożony z obrazu dostarczonego przez ProfitBricks ma pojedynczy wolumin pamięci masowej, /dev/vda
. Jeśli przyjrzymy się temu, używając fdisk
, zobaczymy, że dysk jest podzielony na dwie partycje. Pierwsza, /dev/vda1
, to partycja rozruchowa, na której znajduje się system operacyjny. Druga partycja, /dev/vda2
, jest skonfigurowana jako przestrzeń wymiany.
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
W powyższym przykładzie , całkowity wolumen 50 GB jest podzielony na 46 GB przestrzeni użytkowej i 4 GB do wymiany. Co się stanie, jeśli po udostępnieniu okaże się, że 46 GB miejsca na dysku to za mało, ale wolimy nie dodawać dodatkowego woluminu? Celem jest zwiększenie ilości miejsca na dysku dostępnego w głównym systemie plików. Można to osiągnąć przy minimalnych zakłóceniach. nie musimy ponownie uruchomić serwer!
Wymagania
- Serwer Linux utworzony z obrazu dostarczonego przez ProfitBricks.
- Dostęp przez SSH lub konsolę (przez DCD ) na serwer Linux.
- Polecenie
partprobe
. Można go zainstalować z pakietuparted
w większości dystrybucji Linuksa. -
fdisk
, ,mkswap
,swapon
iresize2fs
. Prawdopodobnie dostępne domyślnie. - Bieżąca migawka lub inna kopia zapasowa systemu, nad którym pracujesz. Na wszelki wypadek!
Zapewnij dodatkową przestrzeń
Aby zwiększyć rozmiar dysku twardego, przejdź do DCD (Projektant centrum danych) i przeskaluj dysk w górę.
Po zwiększeniu ilości miejsca na dysku kliknij „ udostępnianie ”w celu przetworzenia zmiany. Zajmuje to około minuty, a twój dysk twardy jest większy.
Następnie musimy wyłączyć zamianę – więc upewnij się, że możesz przeżyć kilka minut bez przestrzeni wymiany:
root@debian:~# swapoff -a
Po wyłączeniu wymiany, musimy ponownie skonfigurować partycje za pomocą fdisk
:
Najpierw usuniemy dwie istniejące partycje . Uruchamiamy fdisk /dev/vda
, a następnie używamy polecenia d
, aby usunąć partycję 2, a następnie usunąć partycję 1. Postępuj zgodnie z poniższym przykładem:
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.
Teraz odtwarzamy nasze partycje. W przykładzie mamy 4 GB miejsca na wymianę. Musimy więc zachować przynajmniej tyle wolnego miejsca na nową partycję wymiany.
Najpierw utwórz ponownie /dev/vda1
. Naciśnij n , aby utworzyć nową partycję. Wpisz p , aby utworzyć partycję podstawową. Możemy nacisnąć Enter , aby zaakceptować domyślną wartość 2048 dla pierwszego sektora. Następnie wprowadź rozmiar partycji. Możesz wpisać wartość w GB, więc jeśli zwiększamy dysk do 100 GB, odejmujemy nasze 4 GB na wymianę i wpisujemy + 96G na 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.
Teraz odtwarzamy partycję wymiany zgodnie z procesem simalar. Naciśnij n , a następnie p , aby utworzyć nową partycję podstawową. Naciśnij Enter , aby zaakceptować domyślną wartość dla „Pierwszego sektora”. Możemy również ponownie nacisnąć Enter ponownie, aby zaakceptować domyślną wartość dla „ostatniego sektora”.
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.
Ponieważ ta druga partycja będzie używana jako przestrzeń wymiany, musimy zmienić typ partycji. Można to zrobić, naciskając t po znaku zachęty fdisk
. Następnie naciskamy 2 , aby wybrać drugą partycję.Jeśli chcesz zobaczyć listę dostępnych typów partycji, naciśnij L , w przeciwnym razie wpisz 82 , aby wybrać „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
w pomocny sposób informuje nas, że zmieniliśmy typ partycji za pomocą komunikatu:
Changed type of partition "Linux" to "Linux swap / Solaris".
Następnie zapisujemy za pomocą w
i są zwracane do znaku zachęty powłoki:
Command (m for help): w
Możesz otrzymać taki komunikat przed powłoką zachęta:
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).
Zrezygnujmy z ponownego uruchamiania i zamiast tego poinformuj jądro o nowych partycjach za pomocą partprobe
:
root@debian:~# partprobe
Powinniśmy wrócić do zachęty powłoki bez wyjścia z partprobe
.
Teraz musimy zmienić rozmiar naszego systemu plików na /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
Pliki em na /dev/vda1
ma teraz 25165824 (4k) bloków.
Zainicjuj nową lokalizację wymiany /dev/vda2
:
root@debian:~# mkswap /dev/vda2 Setting up swapspace version 1, size = 4193276 KiB no label, UUID=c55c25a2-a386-4653-8455-4d9030586dd2
Na koniec edytujemy /etc/fstab
i zastępujemy stary UUID nowym zwróconym w danych wyjściowych mkswap
polecenie. Linia do zmiany nie ma wartości dla „punktu podłączenia” i ma „typ” ustawiony na 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
Po edycji /etc/fstab
musimy ponownie włączyć zamianę:
root@debian:~# swapon -a
Weryfikuj
Możemy zweryfikować nowy większy rozmiar dysku, używając df
i / lub 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
Możemy również potwierdzić, że serwer został nie uruchomiony ponownie, patrząc na dane wyjściowe uptime
:
$ uptime 23:54:21 up 7 days, 1:15, 1 user, load average: 0.00, 0.01, 0.05
Podsumowanie
Mamy pomyślnie zwiększyliśmy ilość miejsca na dysku dostępną na naszym serwerze Linux.
Referencje
https://devops.ionos.com/tutorials/increase-the-size-of-a-linux-root-partition-without-rebooting/
LUB