Wie lässt sich die Größe einer ext4-Partition (oder einer Partition vom Typ je nach Methode) über die Befehlszeile (möglicherweise mit den wenigsten Befehlen) am einfachsten ändern? aber auch am einfachsten zu verstehen)?
Die Verwendung eines Tools wie Gparted ist in einer GUI offensichtlich einfach, aber was ist mit der Befehlszeile? Ich denke, textbasierte GUIs können auch für die Antwort zählen, da es “ s technisch noch in der Kommandozeile. Es muss nur einfach sein.
Mit Partition meine ich eine einfache Partition auf einer einzelnen Festplatte eines PCs (z. B. auf einem Laptop). Zum Beispiel möchte ich die Größe von /dev/sda4
ändern. Es gibt keine RAIDs, es gibt nicht mehr als ein Festplattenlaufwerk, hier gibt es nichts Kompliziertes. Nur eine einfache Partition auf einer einzelnen Festplatte (/ dev / sdaX auf / dev / sda).
Kommentare
- Sie wissen das wahrscheinlich, aber Gparted ist ein GUI-Frontend für GNU Parted. Vor Parted 2.4 konnten Sie die Größe ändern, dies wurde jedoch inzwischen entfernt. Ich vermute, die einzige Möglichkeit besteht darin, die Partitionstabelle manuell zu ändern, Gerätezuordnungen zu erstellen und dann die Größe des Dateisystems zu ändern.
- Haben Sie dies a gesehen? > Artikel über das Ändern der Größe von Partitionen?
- Ich habe ‚ diese bestimmte Partition nicht gesehen, aber das Wesentliche ist, dass Sie die Partition löschen und dann eine neue erstellen die Größe, die Sie möchten. Aber was ich ‚ von Natur aus tue, ist nicht “ das Löschen von “ Die beste Antwort auf diese Frage wäre wahrscheinlich eine Möglichkeit, “ die Größe von “ eine Partition, keine löschen und eine neue erstellen, und die Schritte resize2fs wären völlig unnötig und würden im Hintergrund stattfinden (da der Benutzer natürlich und offensichtlich auch den gesamten Speicherplatz in der Partition verwenden möchte ‚ sollte also kein zusätzlicher Schritt sein.
Antwort
Sie können fdisk
verwenden, um Ihre Partitionstabelle während der Ausführung zu ändern. Verweisen Sie auf diesen Link http://codesilence.wordpress.com/2013/03/14/live-resizing-of-an-ext4-filesytem-on-linux/
Kommentare
- Sie sollten die relevanten Informationen aus dem Link in Ihre Antwort einfügen, da der Link verrottet. Außerdem ist wordpress.com derzeit dort blockiert, wo ich wohne (China), sodass ich ‚ nicht einmal die “ Antwort „.
- @Thushi, Ausgabe von
fdisk -l
paste.ubuntu. com / 24757891 . Ich möchte sda5 und sda6 als sda6 zusammenführen. Beschädigt es meine Daten? -
fdisk
scheint gebrauchte / freie Daten nicht zu berücksichtigen – was zu einem möglichen Datenverlust führen könnte (nach meinem Verständnis). Ich denke nicht, dass ‚ auf diese Weise als “ einfache “ aufgeführt werden sollte case.
Antwort
Wenn Sie die Größe sowohl der Partition als auch des Dateisystems erhöhen möchten Führen Sie dann zuerst fdisk
aus, um die Größe der Partition zu erhöhen, und führen Sie dann resize2fs
aus, um die Größe des Dateisystems zu erhöhen.
Wenn Sie die Größe von beiden verkleinern möchten, führen Sie zuerst resize2fs
und dann fdisk
aus.
Antwort
gparted
verwendet resize2fs
to Ändern Sie die Größe der Partition. Es werden nicht viele Argumente benötigt. Im Folgenden sind diejenigen aufgeführt, die ich als nützlich erachtet habe.
-M
verkleinert sich auf die Mindestgröße des Dateisystems.
-p
zeigt einen Prozentindikator an.
-P
druckt die Mindestgröße des Dateisystems und wird beendet.
Kommentare
-
resize2fs
‚ ändert die Partitionstabelle überhaupt nicht Ändert die Größe eines Dateisystems . Nachdem Sie es verwendet haben, müssen Sie ‚ die Größe der Partition, auf der sich das Dateisystem befand, entsprechend ändern.
Antwort
Eine skriptfähige Methode, bei der angenommen wird, dass direkt nach der Partition, deren Größe geändert werden soll, freier Speicherplatz vorhanden ist:
echo "- +" | sfdisk -N <partnum> /dev/sdX
… gefolgt von resize2fs /dev/sdX<partnum>
.
Die -
weist sfdisk an, den vorhandenen start
Sektor wiederzuverwenden, und der +
weist ihn an, die so groß wie möglich angesichts des verfügbaren Speicherplatzes.
Kommentare
- Obwohl dies seltsamerweise furchterregend war, tat dies genau das, was ich wollte
dd
-ing über ein Dateisystem von einemddrescue
Image auf ein neues Laufwerk, das zufällig größer war. Danke.
Antwort
Ich beantworte dies, falls Sie eine ähnliche Situation wie ich haben. Ich musste die Größe ändern Das Dateisystem (Ext4) auf einer dynamischen Festplatte, auf der Ubuntu 18.0.4 LTS als Gast ausgeführt wird. Ich habe es geschafft, die Größe der Festplatte vom Host und anschließend die Größe des Dateisystems zu ändern.
Das Ausführen der üblichen Befehle war nicht möglich. Zum Beispiel:
$ resize2fs /dev/sda2 resize2fs 1.44.1 (24-Mar-2018) The filesystem is already 13180160 (4k) blocks long. Nothing to do!
und fdisk
war ziemlich kompliziert, wahrscheinlich musste ich auch eine LiveCD ausführen, um dies zu tun Arbeiten Sie auf der nicht gemounteten Festplatte.
Diese beiden Befehle lösten mein Problem einfach und schnell:
$ 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.
Hinweis: 2
im ersten Befehl, der die Partitionsnummer auf dem Gerät angibt /dev/sda
.
Antwort
Ändern der Größe einer Linux-Root-Partition ohne Neustart
Einführung
Ein typischer Linux-Server, der von einem von ProfitBricks bereitgestellten Image bereitgestellt wird, verfügt über ein einzelnes Speichervolume, /dev/vda
. Wenn wir uns das mit fdisk
ansehen, werden wir sehen, dass die Festplatte in zwei Partitionen unterteilt ist. Die erste, /dev/vda1
, ist die Startpartition, auf der sich das Betriebssystem befindet. Die zweite Partition, /dev/vda2
, ist als Swap Space konfiguriert.
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
Im obigen Beispiel Das gesamte Speichervolumen von 50 GB wird in 46 GB nutzbaren Speicherplatz und 4 GB für den Austausch aufgeteilt. Was ist, wenn wir nach der Bereitstellung feststellen, dass 46 GB Festplattenspeicher nicht ausreichen, wir jedoch kein zusätzliches Speichervolumen hinzufügen möchten? Ziel ist es, den verfügbaren Speicherplatz im Root-Dateisystem zu erhöhen. Dies kann mit minimaler Störung erreicht werden. Wir müssen nicht den Server neu starten!
Anforderungen
- Ein Linux-Server, der aus einem von ProfitBricks bereitgestellten Image erstellt wurde.
- SSH- oder Konsolenzugriff (über das DCD) ) an den Linux-Server.
- Der Befehl
partprobe
. Kann auf den meisten Linux-Distributionen über das Paketparted
installiert werden. - Die
fdisk
,swapoff
,mkswap
,swapon
undresize2fs
. Wahrscheinlich standardmäßig verfügbar. - Ein aktueller Snapshot oder eine andere Sicherung des Systems, an dem Sie arbeiten. Nur um sicher zu gehen!
Zusätzlichen Speicherplatz bereitstellen
Um die Festplatte zu vergrößern, rufen Sie den DCD (Data Center Designer) auf und skalieren Sie die Festplatte.
Nachdem Sie den Speicherplatz auf der Festplatte vergrößert haben, klicken Sie auf “ Bereitstellung „, um die Änderung zu verarbeiten. Dauert ungefähr eine Minute und Ihre Festplatte ist größer.
Wir müssen dann den Swap ausschalten – stellen Sie also sicher, dass Sie ein paar Minuten ohne Swap Space leben können:
root@debian:~# swapoff -a
Sobald der Swap deaktiviert wurde, müssen wir die Partitionen mit fdisk
neu konfigurieren:
Wir werden zuerst die beiden vorhandenen Partitionen löschen . Wir führen fdisk /dev/vda
aus und verwenden dann den Befehl d
, um Partition 2 und dann Partition 1 zu löschen. Befolgen Sie das folgende Beispiel:
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.
Jetzt erstellen wir unsere Partitionen neu. Im Beispiel haben wir 4 GB Swap-Speicherplatz. Wir müssen also mindestens so viel Speicherplatz für die neue Swap-Partition verfügbar halten.
Erstellen Sie zuerst /dev/vda1
neu. Drücken Sie n , um eine neue Partition zu erstellen. Geben Sie p ein, um eine primäre Partition zu erstellen. Wir können drücken. , um den Standardwert von 2048 für den ersten Sektor. Geben Sie dann eine Größe für die Partition ein. Sie können einen Wert in GB eingeben. Wenn wir also die Festplatte auf 100 GB erhöhen, subtrahieren wir unsere 4 GB für den Austausch und geben + 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.
Jetzt erstellen wir die Swap-Partition nach einem ähnlichen Prozess neu. Drücken Sie n und dann p , um eine neue primäre Partition zu erstellen. Drücken Sie Geben Sie ein, um den Standardwert für „Erster Sektor“ zu übernehmen. Sie können auch drücken. erneut eingeben, um den Standardwert für „Letzter Sektor“ zu übernehmen.
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 diese zweite Partition für den Swap Space verwendet wird, müssen wir den Partitionstyp ändern. Dies kann durch Drücken von t an der Eingabeaufforderung fdisk
erfolgen. Wir drücken dann 2 , um die zweite Partition auszuwählen.Wenn Sie die Liste der verfügbaren Partitionstypen anzeigen möchten, drücken Sie L , andernfalls geben Sie 82 zur Auswahl von „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
informiert uns hilfreich darüber, dass wir den Partitionstyp mit der Meldung geändert haben:
Changed type of partition "Linux" to "Linux swap / Solaris".
Danach speichern wir mit dem w
Befehl und werden an eine Shell-Eingabeaufforderung zurückgegeben:
Command (m for help): w
Möglicherweise erhalten Sie eine solche Nachricht vor der Shell Eingabeaufforderung:
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).
Verzichtet auf einen Neustart und teilt dem Kernel stattdessen die neuen Partitionen mit partprobe
mit :
root@debian:~# partprobe
Wir sollten zur Shell-Eingabeaufforderung ohne Ausgabe von partprobe
zurückkehren.
Jetzt müssen wir die Größe unseres Dateisystems auf /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
dem Dateisystem ändern em on /dev/vda1
ist jetzt 25165824 (4k) Blöcke lang.
Initialisieren Sie den neuen Swap-Speicherort von /dev/vda2
:
root@debian:~# mkswap /dev/vda2 Setting up swapspace version 1, size = 4193276 KiB no label, UUID=c55c25a2-a386-4653-8455-4d9030586dd2
Schließlich bearbeiten wir /etc/fstab
und ersetzen die alte UUID durch die neue, die in der Ausgabe von mkswap
Befehl. Die zu ändernde Zeile hat keinen Wert für „Einhängepunkt“ und „Typ“ ist auf 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
Nach dem Bearbeiten von /etc/fstab
müssen wir den Austausch erneut aktivieren:
root@debian:~# swapon -a
Überprüfen Sie
Wir können die neue größere Festplatte mithilfe von df
und / oder 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
Wir können auch bestätigen, dass die Der Server wurde nicht neu gestartet, indem die Ausgabe von uptime
:
$ uptime 23:54:21 up 7 days, 1:15, 1 user, load average: 0.00, 0.01, 0.05
Zusammenfassung
Wir haben Der auf unserem Linux-Server verfügbare Speicherplatz wurde erfolgreich erhöht.
Referenz
https://devops.ionos.com/tutorials/increase-the-size-of-a-linux-root-partition-without-rebooting/
ODER