Come posso espandere la dimensione della partizione ext4 su debian


26

Ho un disco con questa configurazione:

fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000f1b8b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2612    20971520   83  Linux
/dev/sda3           60736       60801      525312   82  Linux swap / Solaris

C'è spazio non allocato da 478 GB, come potrei fare per aggiungere questo spazio a / dev / sda1 senza perdere i dati che sono attualmente su / dev / sda1? (il filesystem è ext4).

NOTA: è un server con solo SSH, nessuna GUI per eseguire cose come gparted.


Posso netboot il server e usarlo mentre l'unità è smontata.
Seb

Questo particolare articolo è stato coperto molte volte all'interno dei siti SE. Sarebbe meglio fare qualche ricerca in più prima di pubblicare una domanda.
mdpc,

Vedi anche askubuntu.com/a/937351/621883 in particolare la risposta contenente growpart e resize2fs mi è stata utile.
Klor,

Risposte:


38

Ingrandire la partizione: fdisk -u /dev/sda.

p per stampare la tabella delle partizioni, prendere nota del numero, inizio, fine, tipo di sda1.

Eliminalo d::

Ricrealo con lo stesso numero (1), inizia e digita ma con una fine maggiore (facendo attenzione a non sovrapporsi con altre partizioni). Prova ad allineare le cose su un limite di megabyte che è per fine , rendilo un multiplo di 2048 meno 1. Cambia il tipo se necessario con t(per le partizioni che contengono un extXo btrfsfilesystem, il valore predefinito di 83va bene).

Quindi wscrivere e quscire.

La tabella delle partizioni sarà stata modificata ma il kernel non sarà in grado di tenerne conto poiché alcune partizioni sono montate.

Tuttavia, se le partizioni in uso fossero solo ingrandite, dovresti essere in grado di forzare il kernel a prendere il nuovo layout con:

partx /dev/sda

Se fallisce, dovrai riavviare. Il sistema dovrebbe avviarsi bene.

Quindi, ridimensiona il filesystem in modo che si diffonda nella misura della partizione ingrandita:

resize2fs /dev/sda1

Per il quale ext4funzionerà bene anche su un live FS.


So che è vecchio, ma manterrà i dati se si elimina la partizione?
Canadian Luke REINSTATE MONICA

3
@CanadianLuke, sì, l'eliminazione della partizione in fdisk modifica solo la tabella delle partizioni. Se lo ricrea con le stesse dimensioni, non ci saranno cambiamenti. I dati non vengono mai modificati a meno che non si riduca una partizione e si crei un'altra partizione logica o estesa nel mezzo di quella che era la partizione, nel qual caso il record di partizione per quella partizione estesa / logica verrà scritto su alcuni dati lì.
Stéphane Chazelas,

Funziona perfettamente anche con le partizioni NTFS (con un volume esistente, con dati).
Kenny Evitt,

Sembra ragionevole, ma cosa succede se ho partizioni Extended, Linux LVM e Linux swap / Solaris che iniziano alla fine della partizione Linux? Devo eliminare queste partizioni>? Sono preoccupato che in quel caso, il filesystem non si avvierà, perché potrebbe essere Linux LVM ad esempio nello stesso inizio e fine. E non voglio perdere anche i dati.
ciano,

@cyan ridimensionare un volume logico LVM con un ext4 FS su di esso, o ridimensionare una partizione usata come volume fisico per LVM sarebbero domande diverse con procedure diverse.
Stéphane Chazelas,

7

Non puoi farlo in sicurezza mentre la partizione è montata, il che significa che devi avviare un'altra partizione e farlo da lì.

gpartedè una GUI piacevole e facile per questo scopo. Nel nostro scambio di commenti cancellati hai detto che non sarebbe iniziato a causa di "impossibile accedere alla visualizzazione" - questo implica che non sei in X; dal momento che è una GUI non funzionerà senza quello.

Ovviamente, se non hai un'altra partizione da usare, avrai bisogno di un CD live o qualcosa del genere - penso che di solito vengano con gparted. La tua scommessa migliore è probabilmente il vero CD live con partizioni , che sembra avere una versione stabile più recente abbastanza recente (e si adatterà su un CD , il che è bello poiché il "live CD" sta rapidamente diventando il "live DVD").

Non ho mai avuto problemi con la partizione, ma ovviamente prima fai il backup.


Non riesco a usare gparted poiché ho solo accesso SSH (è un server senza testa). Sono in grado di smontare l'HDD, poiché il sistema non funziona su / dev / sda.
Seb

1
Se non hai accesso fisico al sistema e quindi non riesci a smontare e modificare la partizione in modo utile, penso che tu sia sfortunato, o almeno in un territorio molto abbozzato , ad esempio, potresti provare a utilizzare fdiskmentre montato, selezionare (x) pert, (c) hange il numero di cilindri. Ma non l'ho fatto e lo farei solo se non ci fosse assolutamente altra scelta.
Riccioli d'oro

Ho appena detto che posso smontare la partizione. Posso persino avviare l'intero server e accedere da un altro server, il che sarebbe come usare un Live CD (solo senza una GUI).
Seb

@Seb: il mio male, scusa.
Riccioli d'oro

2

So che questo è un problema molto vecchio, ma molte persone sono alla ricerca di quella soluzione.

Per questo esempio hai la seguente situazione tipica. All'inizio c'è una singola partizione e alla fine si trova una partizione di swap. non va bene perché lo swap può essere caricato pesantemente e la fine del disco ruotato è la parte più lenta di esso. cosa suggerisco?

  1. Crea una partizione di avvio all'inizio. Perché all'inizio? perché molti strumenti hanno problemi con la fine del disco di grandi dimensioni sopra la barriera di 2 TB. Dopo la partizione di avvio dovrebbe essere la partizione di swap. Questo è per le prestazioni. Il resto del disco dovrebbe essere usato per altre partizioni.

Ma che dire di questa situazione? Non consiglio di espandere sda1. Suggerisco di creare altre partizioni dopo sda1 & sda2, montate come /homee /usr. Su tali directory sono archiviati la maggior parte dei dati utente e di sistema ed è possibile spostare in modo sicuro i dati da tali directory a nuove partizioni.

  1. Ma. (secondo "ma") se vuoi ancora mantenere la tua struttura attuale, devi prima rimuovere la partizione di swap. Dovresti fare lo swapoff, osservalo in /etc/fstab. se swapon ti dice (vedi man) che non viene utilizzato swap, puoi rimuoverlo con lo strumento di partizione (fdisk o simile).

    Quando non hai questa partizione, puoi ingrandire la tua sda1. Usando fdisksi dovrebbe innanzitutto stampare la partizione. Serve a ricordare da dove inizia. In secondo luogo rimuovere la partizione usando il tasto 'd'. Non fatevi prendere dal panico, nulla è scritto sul disco rigido :). Dopo la stampa vedi, non esiste alcuna partizione sul disco.

    Quindi crea una nuova partizione, ma fai attenzione. Scopri su quale settore è stata avviata la partizione originale. Scrivi lo stesso numero. Dopo quello sguardo alla fine. fdiskrichiede l'ultimo settore disponibile. Usa la calcolatrice e assegna nella tua mente lo scambio di cui hai bisogno in kilobyte. Moltiplicalo per 2 e sottrai questo numero dall'ultimo numero di settore richiesto da fdisk. Crea partizione. Stampa questo (è ancora nella memoria temporanea di fdisk), e guarda tutto è ok.

    Dopo aver premuto il tasto 'w', questo scriverà il nuovo partizionamento sull'unità. Vedrai che tutte le informazioni sono sincronizzate o la sincronizzazione non è riuscita. Se fallito, puoi chiamare il comando partx / dev / sda per fare la sincronizzazione. Se il problema persiste, è necessario riavviare il sistema. Dopo il riavvio hai preparato una partizione più grande, ma il filesystem su di essa è ancora più piccolo. Dovresti coltivarlo. EXT4 è coltivabile al volo :), usalo resize2fs /dev/sda1per farlo.

    Non è necessario reinstallare il riavvio, ecc. Infine, è necessario ripristinare la partizione di swap. Usa di nuovo fdisk, crea una nuova partizione come swap. Dopo aver scritto 'w', il dispositivo sda2 verrà ripristinato. Prepara la struttura dello swap usando mkswap /dev/sda2, rimuovi i commenti per lo swap /etc/fstabe infine fai swapon -a. Guarda usando swapon o il comando in alto, lo swap è attivato.

Lo so, è una spiegazione molto lunga. Spero che sia utilizzabile per chiunque. Nota, secondo me il filesystem xfs è molto meglio, sfortunatamente questo fs non supporta il restringimento senza una copia temporanea in un posto alternativo, ma il restringimento viene usato raramente. È bello, xfs occupa pochissimo spazio per i suoi metadati ed è più veloce in molti modi rispetto a ext4.

Un altro suggerimento, utilizzare meglio LVM come strato intermedio per il partizionamento. dopodiché qualsiasi ridimensionamento è molto più semplice. Le prestazioni sono paragonabili, ovviamente, puoi usare un mix di gestione degli HDD. è possibile utilizzare in partizioni grezze comuni e LVM.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.