Jak mogę zwiększyć rozmiar partycji ext4 w Debianie

26

Mam napęd w tej konfiguracji:

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

Jest 478 GB nieprzydzielonego miejsca, jak bym dodał to miejsce do / dev / sda1 bez utraty danych, które są aktualnie na / dev / sda1? (system plików to ext4).

UWAGA: jest to serwer tylko z SSH, bez GUI do uruchamiania rzeczy takich jak gparted.

Seb
źródło
Mogę uruchomić komputer z serwera i używać go, gdy dysk jest odmontowany.
Seb
Ten konkretny element był wielokrotnie omawiany na stronach SE. Najlepiej byłoby zrobić trochę więcej badań przed wysłaniem pytania.
mdpc,
Zobacz także askubuntu.com/a/937351/621883, szczególnie odpowiedź zawierająca growpart i resize2fs była dla mnie przydatna.
klor

Odpowiedzi:

38

Powiększyć partycję: fdisk -u /dev/sda.

p aby wydrukować tablicę partycji, zanotuj numer, początek, koniec, typ sda1.

Usuń d:

Odtwórz go z tym samym numerem (1), rozpocznij i wpisz, ale z większym końcem (uważając, aby nie nakładać się na inne partycje). Spróbuj wyrównać rzeczy na granicy megabajta, która jest na końcu , aby była wielokrotnością 2048 minus 1. W razie potrzeby zmień typ t(dla partycji zawierających system plików extXlub btrfsdomyślnie 83jest w porządku).

Potem wpisać i qrzucić.

Tabela partycji zostanie zmodyfikowana, ale jądro nie będzie w stanie tego uwzględnić, ponieważ niektóre partycje są montowane.

Jeśli jednak używane partycje zostały tylko powiększone, powinieneś być w stanie zmusić jądro do przyjęcia nowego układu za pomocą:

partx /dev/sda

Jeśli to się nie powiedzie, musisz zrestartować komputer. System powinien wystartować dobrze.

Następnie zmień rozmiar systemu plików, aby rozprzestrzenił się na powiększoną partycję:

resize2fs /dev/sda1

Które ext4będą działać dobrze nawet na żywo FS.

Stéphane Chazelas
źródło
Wiem, że to stare, ale czy zachowa to dane, jeśli usuniesz partycję?
Kanadyjczyk Luke REINSTATE MONICA
3
@CanadianLuke, tak, usunięcie partycji w fdisk modyfikuje tylko tablicę partycji. Jeśli odtworzysz go w tym samym rozmiarze, nic się nie zmieni. Dane nigdy nie zostaną zmienione, chyba że zmniejszysz partycję i nie utworzysz innej partycji logicznej lub rozszerzonej w środku poprzedniej partycji, w którym to przypadku rekord partycji dla tej rozszerzonej / logicznej partycji zostanie zapisany na niektórych danych.
Stéphane Chazelas
Działa to również świetnie dla partycji NTFS (z istniejącym woluminem, z danymi).
Kenny Evitt,
Brzmi rozsądnie, ale co jeśli mam partycje Extended, Linux LVM i Linux swap / Solaris, które zaczynają się na końcu partycji Linux? Czy powinienem usunąć te partycje>? Martwię się, że w takim przypadku system plików nie uruchomi się, ponieważ może na przykład używać Linux LVM na tym samym początku i końcu. Nie chcę też tracić danych.
cyan
@cyan zmiana rozmiaru woluminu logicznego LVM z użyciem ext4 FS lub zmiana rozmiaru partycji używanej jako wolumin fizyczny dla LVM byłyby różnymi pytaniami z różnymi procedurami.
Stéphane Chazelas,
7

Nie możesz tego zrobić bezpiecznie, gdy partycja jest zamontowana, co oznacza, że ​​musisz uruchomić inną partycję i zrobić to stamtąd.

gpartedjest ładnym, łatwym GUI do tego celu. W naszej usuniętej wymianie komentarzy wspomniałeś, że nie zacznie się z powodu „nie ma dostępu do wyświetlania” - oznacza to, że nie jesteś w X; ponieważ jest to GUI, bez tego nie będzie działać.

Oczywiście, jeśli nie masz innej partycji, potrzebujesz płyty CD na żywo lub czegoś takiego - myślę, że zwykle pochodzą z gparted. Najlepszym rozwiązaniem jest prawdopodobnie rzeczywista płyta CD z partiami , która wygląda na dość aktualną najnowszą stabilną wersję (i zmieści się na płycie CD , co jest miłe, ponieważ „live CD” szybko staje się „live DVD”).

Nigdy nie brałem udziału w problemie, ale oczywiście najpierw popieraj swoją ważną sprawę.

Złotowłosa
źródło
Nie mogę używać gparted, ponieważ mam tylko dostęp SSH (jest to serwer bezgłowy). Jestem w stanie odmontować dysk twardy, ponieważ system nie działa na / dev / sda.
Seb
1
Jeśli nie masz fizycznego dostępu do systemu, a tym samym nie możesz z korzyścią odmontować i zmienić partycji, myślę, że nie masz szczęścia lub przynajmniej na bardzo szkicowym terytorium - np. Możesz spróbować użyć go fdiskpodczas montowania, wybierz (x) pert, (c) liczbę zmian cylindrów. Ale tego nie zrobiłem i zrobiłbym to tylko, gdyby absolutnie nie było innego wyboru.
goldilocks
Właśnie powiedziałem, że mogę odmontować partycję. Mogę nawet uruchomić komputer z całego serwera i przejść z innego serwera, co byłoby jak przy użyciu Live CD (tylko bez GUI).
Seb
@Seb: mój zły, przepraszam.
goldilocks
2

Wiem, że to bardzo stary problem, ale wiele osób szuka tego rozwiązania.

W tym przykładzie masz następującą typową sytuację. Na początku jest pojedyncza partycja, a na końcu znajduje się partycja wymiany. nie jest to dobre, ponieważ swap może być mocno obciążony, a koniec obracanego dysku jest jego najwolniejszą częścią. co sugeruję

  1. Utwórz partycję rozruchową na początku. Dlaczego na początku? ponieważ wiele narzędzi ma problemy z końcem dużego dysku powyżej bariery 2 TB. Po partycji rozruchowej należy zamienić partycję. To jest dla wydajności. Reszta dysku powinna być używana do innych partycji.

Ale co z tą sytuacją? Nie polecam rozszerzenia sda1. Sugeruję tworzenie innych partycji po sda1 i sda2, montowanych jako /homei /usr. Na tych katalogach jest przechowywanych najwięcej danych użytkownika i systemu, i można bezpiecznie przenosić dane z tych katalogów do nowych partycji.

  1. Ale. (drugie „ale”), jeśli nadal chcesz zachować obecną strukturę, najpierw usuń partycję wymiany. Powinieneś zrobić zamianę, zaznacz to w /etc/fstab. jeśli swapon powie ci (patrz man), że nie jest używana zamiana, możesz ją usunąć za pomocą narzędzia partycji (fdisk lub podobne).

    Jeśli nie masz tej partycji, możesz powiększyć swój sda1. Używając fdiskpowinieneś najpierw wydrukować partycję. Służy do zapamiętywania, od czego się zaczyna. Po drugie usuń partycję za pomocą klawisza „d”. Nie panikuj, nic nie jest zapisywane na dysku twardym :). Po wydrukowaniu widać, że na dysku nie ma partycji.

    Następnie utwórz nową partycję, ale bądź ostrożny. Zobacz, na jakiej partycji uruchomiono oryginalną partycję. Napisz ten sam numer. Po tym spojrzeniu na koniec. fdiskmonituje o ostatni dostępny sektor. Skorzystaj z kalkulatora i przypisz, ile wymiany potrzebujesz w kilobajtach. Pomnóż go przez 2 i odejmij tę liczbę od ostatniego numeru sektora podpowiedzianego przez fdisk. Utwórz partycję. Wydrukuj to (wciąż jest w tymczasowej pamięci fdisk) i sprawdź, czy wszystko jest w porządku.

    Po tym wciśnięciu klawisza „w” spowoduje to zapisanie nowego partycjonowania na dysku. Zobaczysz informacje, że wszystko jest zsynchronizowane lub synchronizacja nie powiodła się. Jeśli się nie powiedzie, możesz wywołać komendę partx / dev / sda w celu wykonania synchronizacji. Jeśli nadal nie powiedzie się, należy ponownie uruchomić system. Po ponownym uruchomieniu przygotowałeś większą partycję, ale system plików na niej jest nadal mniejszy. Powinieneś to wyhodować. EXT4 jest dostępny w locie :), użyj resize2fs /dev/sda1do tego.

    Nie musisz ponownie montować ponownie, itp. Na koniec powinieneś przywrócić partycję wymiany. Po prostu ponownie użyj fdisk, utwórz nową partycję jako swap. Po napisaniu „w” urządzenie sda2 zostanie przywrócone. Przygotuj na nim strukturę wymiany mkswap /dev/sda2, usuń uwagi na temat zamiany /etc/fstabi na koniec swapon -a. Spójrz za pomocą polecenia swapon lub top, zamiana jest aktywowana.

Wiem, to bardzo długie wytłumaczenie. Mam nadzieję, że będzie to przydatne dla każdego. Zauważ, moim zdaniem, system plików xfs jest znacznie lepszy, niestety ten fs nie obsługuje zmniejszania bez tymczasowego kopiowania w inne miejsce, ale zmniejszanie jest używane rzadko. To miłe, xfs zajmuje bardzo mało miejsca dla własnych metadanych i jest szybszy na wiele sposobów w porównaniu do ext4.

Kolejna wskazówka, lepiej użyć LVM jako warstwy środkowej do partycjonowania. potem dowolna zmiana rozmiaru jest znacznie łatwiejsza. Wydajność jest porównywalna, oczywiście można użyć kombinacji zarządzania dyskami twardymi. możesz używać w typowych partycjach typu raw i LVM.

Znik
źródło
Wielkie podziękowania dla slm za ładne poprawki językowe: D
Znik