Heeft u een schijf vergroot of heeft u nu ongepartitioneerde ruimte na een Ubuntu-gegevenspartition? Om deze ruimte bruikbaar te maken, zijn er twee afzonderlijke acties nodig: het wijzigen van de partitie-invoer in de tabel, en vervolgens het vergroten van het ext4-bestandssysteem dat deze bevat. fdisk doet alleen de eerste; resize2fs komt daarna aan de beurt.

De titel “zonder gegevensverlies” biedt geen garantie. De veiligheid van deze operatie staat of valt met een goed geteste back-up, de duidelijke identificatie van de juiste schijf en het exacte behoud van het startsektor van de partitie. Een foutieve doelselectie of een gewijzigde start kan de gegevens ontoegankelijk maken. Als een controle niet overeenkomt met wat hier wordt beschreven, stop dan voor elke schrijfactie.
Controleer of uw partitie in de behandelde situatie valt
Dit traject betreft een klassieke Linux-gegevenspartitie, geformatteerd in ext4, niet-wortel, niet-LVM, niet-versleuteld en buiten software RAID mdraid. De ongepartitioneerde ruimte moet onmiddellijk na de te vergroten partitie liggen. De partitie mag geen logische partitie zijn die zich in een uitgebreide MBR-partitie bevindt. Tenslotte moet deze beschikbaar zijn zonder te worden gemonteerd voor de operatie: probeer niet een weigering van de kernel te omzeilen omdat deze in gebruik is.
Begin met het lezen van de organisatie van de apparaten en bestandssystemen:
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
Zoek de bovenliggende schijf, de part invoer die u interesseert, zijn formaat en zijn montagepunt. Een tussenlaag, een LVM logische volume, encryptie of RAID betekent dat u niet direct op een klassieke ext4-partitie werkt: stop en volg de procedure voor deze laag. Om een gegevenspartitie te onderscheiden van een gemonteerde root-partitie, controleer ook de montages:
findmnt
In de voorbeelden van dit artikel duidt /dev/sdX de gehele schijf aan, die moet worden vervangen door de daadwerkelijk geïdentificeerde naam, bijvoorbeeld een apparaat van uw systeem. /dev/sdXN duidt de partitie van deze schijf aan, met zijn werkelijke nummer. Dit zijn placeholders, geen paden die letterlijk moeten worden overgenomen. Verwar de bovenliggende schijf niet met de partitie: fdisk ontvangt de eerste, terwijl resize2fs de tweede zal willen doelwit.
Controleer de tabel en de grenzen van de geïdentificeerde schijf:
sudo fdisk -l /dev/sdX
Vervang /dev/sdX door de bevestigde schijf van de vorige stap. Zoek het type tabel (gpt of dos, dat wil zeggen MBR), het nummer van de doelpartitie, het startsektor (“Start”), het eind (“End”) en het type. De vrije ruimte moet onmiddellijk na het eind van de partitie beginnen en doorgaan zonder dat een andere partitie zich ertussen bevindt. Als de ruimte voor de partitie is, als deze bezet is, als de schijf al volledig is toegewezen of als u deze grenzen niet met zekerheid kunt vaststellen, gebruik deze methode dan niet. Als de identificatie van de schijf onzeker blijft, herhaal dan eerst de controles die in deze gids zijn gepresenteerd om een partitie voor te bereiden zonder de verkeerde schijf te wissen. Als het de schijf zelf is die vergroot moet worden, deze voorafgaande operatie vindt plaats in de omgeving die deze levert; dit wordt hier niet verder behandeld.
Stop ook als het doel de gemonteerde root is, als het bestandssysteem geen ext4 is of als u een logische/uitgebreide MBR, LVM, LUKS, mdraid, Btrfs of XFS heeft. Deze gevallen behoren tot een andere laag of procedure. Verplaats nooit het begin van de partitie om ruimte ervoor terug te winnen.
Maak een back-up van de gegevens en noteer de parameters
Voordat u de tabel aanraakt, maakt u een volledige back-up van de gegevens op een apart medium, en controleer deze met een daadwerkelijke lezing of terugzetting. Een back-up van de tabel vervangt deze gegevensback-up niet. Plan een onderhoudsvenster en de mogelijkheid van een gecontroleerde herstart als de kernel de tabel niet onmiddellijk opnieuw kan lezen.
U kunt een verslag van de tabel opslaan op een locatie die door uw shell voor schrijven is toegestaan:
sudo sfdisk -d /dev/sdX > back-up-tabel-sdX.sfdisk
Vervang /dev/sdX en de naam back-up-tabel-sdX.sfdisk door die van de bevestigde schijf. Controleer of het verkregen bestand aanwezig, leesbaar en niet leeg is, of het de juiste schijf beschrijft, en bewaar een kopie buiten de schijf die wordt gemanipuleerd. De redirectie > wordt uitgevoerd door de shell die dit oproept: sudo geeft niet automatisch schrijfrechten op de bestemmingsmap. Beschouw deze dump niet als een improvisatiemethode voor herstel.
Noteer buiten uw sessie de exacte parameters van de doelpartitie: nummer, startsektor Start, eindsektor End, type en tabel GPT of MBR. Vergelijk ze met de uitvoer van de vorige opdracht en met de interactieve weergave die hieronder wordt beschreven. De startsektor is het kritieke referentiepunt: deze moet identiek blijven, zonder verschuiving, na het recreëren van de invoer. Controleer ook of de voorgestelde uitbreiding geen andere partitie zal overlappen.
Als uw systeem partitie- of bestandssysteemidentificaties gebruikt, noteer deze dan voor de operatie:
blkid
blkid toont onder andere de UUID waarden van het bestandssysteem en, afhankelijk van het apparaat, de PARTUUID van de partitie. Vergelijk deze waarden vervolgens met de referenties die door de montages of de opstart worden gebruikt. Verwijderen en opnieuw aanmaken van een invoer kan zijn PARTUUID wijzigen; neem niet aan dat deze stabiel blijft. Als u niet weet welke referenties actief zijn of hoe om te gaan met een verschil, stop dan voor u gaat schrijven. Hetzelfde geldt als de gegevensback-up niet is getest, als de tabel-dump ontbreekt of inconsistent is, of als het nummer, het type of het begin niet zeker zijn.
Herenig de invoer in fdisk zonder het begin te verplaatsen
De actie in fdisk betreft de partitie tabel, niet de inhoud van ext4. De documentatie van fdisk beschrijft de manipulatie van GPT- en MBR-tabellen en de te controleren partitie-informatie. Open de tool op de al geïdentificeerde bovenliggende schijf:
sudo fdisk /dev/sdX
Vervang de placeholder door de gehele schijf, niet door de naam van de partitie. In de interactieve interface, ga alleen verder als u elk weergegeven scherm begrijpt:
- Voer
pin om de tabel weer te geven. Zoek opnieuw de doelpartitie, zijn nummer, type en startsector. Ze moeten overeenkomen met uw aantekeningen. - Het verwijderen van de invoer met
dbetreft alleen de doelpartitie. Als de tool om een nummer vraagt, kies dan degene die u heeft gecontroleerd; raadpleeg niet en verwijder geen andere invoeren. - Met
n, maak de vervangende invoer aan. Behoud hetzelfde nummer en voer exact hetzelfde eerste sector in als genoteerd. Kies een eindpunt dat verder in de aangrenzende vrije ruimte ligt, zonder de schijf te overschrijden of een andere partitie te overlappen. Houd rekening met het voorgestelde uitlijningsvoorstel vanfdisk; als het een andere start impliceert of als u de waarschuwing niet begrijpt, ga dan niet door. - Controleer of het oorspronkelijke partitie-type behouden blijft. Geef opnieuw de tabel weer met
pen vergelijk deze met uw aantekeningen: hetzelfde nummer, hetzelfde type, dezelfdeStart, nieuwe verwachte eind en alle andere invoeren intact.
Bevestig het schrijven met w alleen als elke waarde overeenkomt en als u de weergegeven berichten begrijpt. Anders, sluit zonder te schrijven en herhaal het diagnoseproces. Als fdisk een ext4-handtekening meldt en voorstelt deze te verwijderen, weigert u: verwijder deze handtekening niet. Een waarschuwing, een onverwachte dialoog of een inconsistent nummeringsprobleem is een reden om te stoppen, geen uitnodiging om willekeurige antwoorden te proberen.
Na het schrijven beschrijft de tabel een grotere partitie, maar ext4 behoudt nog steeds zijn oorspronkelijke grootte. De tweede operatie zal nodig zijn om het bestandssysteem de toegevoegde ruimte te laten gebruiken.
Vraag de kernel de tabel opnieuw te lezen
Vraag de kernel om de tabel van de betrokken schijf opnieuw te lezen:
sudo partprobe /dev/sdX
Gebruik altijd de bevestigde bovenliggende schijf. Een foutloze terugkeer van partprobe is niet voldoende om te bewijzen dat de nieuwe grootte daadwerkelijk wordt erkend. Lees de tabel opnieuw en controleer de grootte die door de kernel wordt gepresenteerd:
sudo fdisk -l /dev/sdX
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
Het startsector moet onveranderd blijven, de nieuwe eind moet binnen de voorziene grenzen blijven en lsblk moet de nieuwe grootte van de doelpartitie tonen, zonder afwijkingen in andere invoeren. Als de kernel de tabel niet opnieuw laadt, voer dan resize2fs niet uit. Stel de operatie uit; als uw omgeving het toelaat, organiseer dan een herstart in een gecontroleerd venster, en controleer opnieuw de tabel en de erkende grootte voordat u ext4 vergroot. Als de herlezing mislukt voor een gemonteerde root, stop dan: deze situatie valt buiten deze tutorial.
Vergroot ext4 en controleer het resultaat
Wanneer de kernel de vergrote partitie goed ziet en het startsector identiek is aan de genoteerde waarde, kunt u het ext4-bestandssysteem uitbreiden:
sudo resize2fs /dev/sdXN
Vervang /dev/sdXN door de exacte naam van de ext4-partitie, met het werkelijke nummer — niet door de bovenliggende schijf. resize2fs vergroot ext2/3/4 binnen de bestaande container; het wijzigt de partitie tabel niet. Zijn uitvoeringsvolgorde komt dus na de vergroting en de succesvolle herlezing van deze tabel, zoals aangegeven in de documentatie van resize2fs. Een opnieuw aangemaakte partitie die op een andere sector begint, kan het bestandssysteem aan een volledig verlies blootstellen: gebruik deze opdracht niet als het begin niet exact overeenkomt.
Wacht tot de opdracht is voltooid en controleer of er geen fouten zijn gerapporteerd. Controleer vervolgens de bestandssystemen en de identificaties:
lsblk -f
blkid
De doelpartitie moet nog steeds verschijnen als ext4, met de verwachte identificaties of met alle verschillen in UUID/PARTUUID betrokken en verwerkt. Als de PARTUUID referenties zijn gewijzigd, stel het systeem dan niet in diensten voordat u heeft gecontroleerd en gecorrigeerd, afhankelijk van uw omgeving, de betrokken montage- of opstartreferenties. Neem niet aan dat een referentie geldig blijft na het opnieuw creëren van de invoer.
Om de bruikbare ruimte op een gemonteerd bestandssysteem te controleren, gebruikt u:
df -hT
Na het opnieuw monteren volgens de procedure specifiek voor uw omgeving, moet de regel van de betrokken partitie het type ext4 en een verhoogde bruikbare capaciteit aangeven. Als de partitie niet is gemonteerd, is het normaal dat deze ontbreekt in df en bewijst dit geen falen. Houd de onderscheid in gedachten: een grotere tabel betekent niet dat ext4 ook groter is totdat resize2fs is voltooid.
Fouten en situaties die een stop vereisen
Ga niet verder als u de schijf niet kunt identificeren, als het eerste sector onbekend of verschillend is, als een back-up niet is gecontroleerd, als de ruimte niet aaneengeschakeld is na de partitie of als een andere partitie gevaar loopt te worden overgedekt. Stop ook bij een waarschuwing van ext4-handtekening, wijziging van type, onbegrijpelijke fdisk-dialoog of falen van herlezing door de kernel.
Een fout in resize2fs, een grootte die niet overeenkomt met die van de tabel, of een onverwachte UUID/PARTUUID identificatie vereist ook dat u de herstart opschort en de situatie onderzoekt. Ga niet verder met een formattering, improvisatie of nieuwe tabelwijziging. Als u niet in het eenvoudige ext4-gebied bent dat hier wordt beschreven, gebruik dan de documentatie die overeenkomt met de echte laag in plaats van deze sequentie aan te passen.
Te onthouden
Voor deze ext4-gegevenspartitie alleen, volg deze volgorde: geteste back-up, identificatie en registratie van parameters, verlenging van de invoer met hetzelfde startsektor, bevestigde herlezing door de kernel, en vervolgens verlenging van ext4 met resize2fs. De minste onzekerheid over de schijf, de sectoren, de identificaties of het verwachte resultaat is een genoeg reden om de tabel niet te schrijven.