Jak zmienić rozmiar partycji przy użyciu wiersza polecenia bez interfejsu GUI na serwerze?
44
Mam dostęp do serwera tylko przez terminal i nie mogę korzystać z narzędzi graficznych, takich jak GParted!
Chcę utworzyć nową partycję z części katalogu głównego (około 768 MB) do wymiany.
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda 20G 1.3G 18G 7% /
udev 10M 0 10M 0% /dev
tmpfs 199M 4.9M 194M 3% /run
tmpfs 100M 12K 100M 1% /run/user
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
Nie można zmniejszyć / edytować partycji, jeśli jakakolwiek partycja na urządzeniu pamięci masowej jest zamontowana. Aby więc odmontować i edytować główny system plików, system operacyjny musi zostać zamknięty. Następnie uruchom system na żywo i edytuj partycję zgodnie z opisem w innych odpowiedziach.
Alternatywne rozwiązanie: plik wymiany
Alternatywnie do tworzenia całej partycji, plik wymiany umożliwia zmianę jego rozmiaru w locie i jest łatwiejszy do usunięcia. Plik wymiany może być podłączany na gorąco . tzn. można je dodawać i usuwać bez odmontowywania / wyłączania systemu operacyjnego.
Utwórz plik 512 MB o nazwie /swapfile. To będzie nasz plik wymiany.
fallocate -l 512M /swapfile
LUB
dd if=/dev/zero of=/swapfile bs=1M count=512
Ustaw odpowiednie uprawnienia (ponieważ plik wymiany, który można odczytać na całym świecie, to ogromna lokalna luka):
chmod 600 /swapfile
Po utworzeniu pliku o odpowiednim rozmiarze sformatuj go, aby zamienić:
Myślę, że to najłatwiejsza i najskuteczniejsza odpowiedź =)! Czy są jakieś konsekwencje korzystania z pliku zamiast partycji?
Alaa Ali
2
Nieznacznie niska wydajność, jeśli plik jest pofragmentowany. Zarówno ciągły plik wymiany, jak i partycja nie mają przewagi wydajnościowej, obie są traktowane w ten sam sposób.
totti
1
Myślę, że to najlepsze rozwiązanie. Ponieważ nie formatujesz, nie zmniejszasz ani nie zmieniasz w żaden sposób partycji (tabel), nie ma ryzyka utraty danych.
R110
27
Przede wszystkim należy wiedzieć, że nie można zmienić rozmiaru, aby zmniejszyć partycję główną, jeśli jej używasz (nazywa się to zmniejszaniem online). Możesz go rozwijać tylko online. Jest to obsługiwane przez resize2fspolecenie. Zakładam, że:
Nie chcesz stracić informacji na partycji głównej.
Nie masz fizycznego dostępu do dysku twardego, aby korzystać z LiveCD. Może to dotyczyć środowiska wirtualnego lub zdalnego. W przypadku wirtualnego nadal możesz zarządzać uruchamianiem z LiveCD, jeśli ustawisz uruchamianie VM z LiveCD. Zakłada się, że maszyna wirtualna obsługuje wysyłanie graficznego interfejsu użytkownika na pulpicie, z którego można uruchomić aplikację Gparted w celu łatwej zmiany rozmiaru. Ale ponieważ jest to mniej prawdopodobne, zakładam, że nie możesz.
Istnieją 2 typy partycji, których rozmiar można zmienić, partycje LVM lub partycje Logical Volume Manager, które obsługują zmianę rozmiaru w trybie online (zmniejszanie / powiększanie) od czasu utworzenia galaktyki i standardowych partycji, z których większość z nas korzysta. Obecnie jedynym, który ma prawie 100% wsparcie pełnego zmieniania rozmiaru online (Shrink / Grow) jest system plików btrfs (który jest wciąż w fazie rozwoju). Wyjaśnię, jak wykonywać normalne partycje, których większość z nas używa w systemie plików ext4.
Zmiana rozmiaru (powiększanie) partycji
Aby powiększyć partycję, możesz to zrobić z zamontowanym rootem. Aby to zrobić, po prostu wykonaj:
sudo resize2fs /dev/sda1
Pod warunkiem, że masz już puste miejsce gotowe do scalenia. Następnie zalecam ponowne uruchomienie, aby zmiany odniosły skutek. Powyższe polecenie zmieni rozmiar na maksymalny dozwolony. Jeśli chcesz zmienić rozmiar do określonego rozmiaru, po prostu dodaj rozmiar na końcu:
sudo resize2fs /dev/sda1 25G
Pamiętaj, że jeśli chcesz podać 25,4 GB, nie możesz użyć „.”. musisz zejść o jedną jednostkę miary. W tym przypadku z GB na MB, więc wyglądałoby to tak:
sudo resize2fs /dev/sda1 25400M
W ten sposób będziesz mieć partycję 25,4G
Zmiana rozmiaru (zmniejszanie) partycji
Zmniejszenie partycji jest procesem dwuetapowym, który obejmuje:
Zmniejszenie rozmiaru systemu plików o wymaganą ilość.
Zmniejszenie rozmiaru podstawowego urządzenia blokowego, aby pasowało do rozmiaru systemu plików.
Przed zmniejszeniem pojemności systemu plików należy zmniejszyć rozmiar urządzenia blokowego (którym może być partycja lub wolumin logiczny). Ponieważ nie jest to dostępne dla żadnego systemu plików ext *, nie będzie można go zmniejszyć z 20 GB do 19,5 GB, aby utworzyć system wymiany 500 MB.
Nawet Ext4 nie obsługuje kurczenia się online. Jeśli spróbujesz to zrobić, otrzymasz:
O ile wiem, Twoim jedynym zakładem jest:
Zainstaluj inną wersję Ubuntu na tym samym serwerze (na innej partycji), której można następnie użyć do zmniejszenia partycji głównej oryginalnego serwera Ubuntu.
Zainstaluj serwer Ubuntu od zera w rozmiarze, którego faktycznie potrzebujesz
Użyj obrazu Live Ubuntu Server, aby zmienić rozmiar partycji. W takim przypadku musisz przejść do tego ekranu:
I wybierz opcję Zmień rozmiar, jak pokazano na powyższym obrazku. Stamtąd wybierzesz nowy rozmiar, ponieważ odtąd możesz odmontować jednostkę i zmniejszyć ją, jeśli chcesz.
Dodatkową pomocą jest tutaj system plików gparted suppor http://gparted.org/features.php, który podaje bardzo szczegółową listę obsługiwanych i obejmuje, jeśli mają one pełną zmianę rozmiaru online. Btrfs jest wśród nich.
Jestem ciekawy, czy istnieją inne systemy plików, które obsługują zmniejszanie się w Internecie? może ZFS lub BTRFS?
Seth
Dodałem link na dole. Jądro musi również to obsługiwać, jeśli system plików ma poprawnie zmienić rozmiar w trybie online.
Luis Alvarado,
Mam serwer Ubuntu na maszynie VMware, a jego rozmiar dysku to 120G. Ale po użyciu pierwszego rozwiązania pojawia się ten błąd: System plików ma już 27262720 bloków. Nic do roboty!
Dr.jacky,
1
Dziękuję @ Mr.Hyde. Było kilka problemów ze stacją roboczą 10, a nawet 11. Poleciłbym 12, a dla Ubuntu zaktualizowałbym też najnowszą lub nową wersję LTS, ponieważ były też pewne problemy. W moim przypadku mam stację roboczą VMware 12.0.1 i 64-bitową wersję Ubuntu 15.10.
Luis Alvarado,
3
Ze strony podręcznika resize2fs:The resize2fs program does not manipulate the size of partitions.
ACK_stoverflow
6
Odpowiedź zależy od tego, czy można odmontować partycję, aby ją zmniejszyć, czy nie. W twoim przypadku prawdopodobnie nie możesz odmontować partycji. W systemie Linux (UNIX / MAC OS) podłączenie partycji oznacza użycie systemu plików i odwzorowanie go na punkt montowania (w twoim przypadku /). Odmontowanie oznacza, że przestajesz używać systemu plików i usuwasz mapowanie do punktu montowania. Nie można odmontować systemu plików zawierającego działający system operacyjny.
Jeśli partycja może być odmontowana
Załóżmy, że chcesz zmniejszyć partycję ext4 200 GB na /dev/sda4zamontowanym /data. Obecnie zawiera muzykę i filmy lub podobne, więc możesz tymczasowo odmontować. Chcesz utworzyć zamianę 4 GB.
sudo umount /dev/sda4
odmontować partycję.
sudo resize2fs /dev/sda4 196G
zmienić rozmiar systemu plików ext4 do 196 GB, przy założeniu, że jest wystarczająco dużo miejsca. Teraz musisz zmniejszyć partycję. Obecnie uważam, że musisz użyć, cfdiskaby usunąć istniejącą partycję i odtworzyć mniejszą partycję na jej miejscu. Następnie możesz także utworzyć nową partycję dla wymiany.
sudo cfdisk /dev/sda
da ci GUI tekstowe do sprawdzenia tablicy partycji. printW tym momencie poleciłbym Ci tablicę partycji do pliku lub ekranu i zanotuje bieżącą konfigurację jako kopię zapasową. Następnie możesz wybrać /dev/sda4i deletepartycję. W jego miejscu free spacepojawi się. Użyj, newaby utworzyć nową partycję z 196 GB na swoim miejscu i ustaw typ na ext4. Następnie przejdź do końcowej wolnej przestrzeni i utwórz partycję wymiany 4 GB z typem swap. Uwaga: Nie testowałem tych poleceń, ponieważ /w tej chwili nie mogę się nimi bawić .
Jeśli partycji nie można odmontować
Nie można zmniejszyć zamontowanej partycji ext3 / 4 (patrz strona podręcznika resize2fs). Podczas uruchamiania systemu operacyjnego /nie można odmontować /. Oznacza to, że musisz wprowadzić inny system operacyjny (np. Z klucza USB), aby dokonać zmian.
W twoim przypadku jest to serwer zdalny (najprawdopodobniej na KVM), więc może nie być możliwe uruchomienie z USB / obrazu systemu operacyjnego na żywo. Mogą istnieć inne sposoby zmiany partycjonowania od dostawcy vServer za pomocą GUI administratora. Uważam, że jest to obecnie twój najlepszy zakład.
Przede wszystkim należy wiedzieć, że nie można zmienić rozmiaru, aby zmniejszyć partycję główną, jeśli jej używasz (nazywa się to zmniejszaniem online). Możesz go rozwijać tylko online. Jest to obsługiwane przez
resize2fs
polecenie. Zakładam, że:Istnieją 2 typy partycji, których rozmiar można zmienić, partycje LVM lub partycje Logical Volume Manager, które obsługują zmianę rozmiaru w trybie online (zmniejszanie / powiększanie) od czasu utworzenia galaktyki i standardowych partycji, z których większość z nas korzysta. Obecnie jedynym, który ma prawie 100% wsparcie pełnego zmieniania rozmiaru online (Shrink / Grow) jest system plików btrfs (który jest wciąż w fazie rozwoju). Wyjaśnię, jak wykonywać normalne partycje, których większość z nas używa w systemie plików ext4.
Zmiana rozmiaru (powiększanie) partycji
Aby powiększyć partycję, możesz to zrobić z zamontowanym rootem. Aby to zrobić, po prostu wykonaj:
Pod warunkiem, że masz już puste miejsce gotowe do scalenia. Następnie zalecam ponowne uruchomienie, aby zmiany odniosły skutek. Powyższe polecenie zmieni rozmiar na maksymalny dozwolony. Jeśli chcesz zmienić rozmiar do określonego rozmiaru, po prostu dodaj rozmiar na końcu:
Pamiętaj, że jeśli chcesz podać 25,4 GB, nie możesz użyć „.”. musisz zejść o jedną jednostkę miary. W tym przypadku z GB na MB, więc wyglądałoby to tak:
W ten sposób będziesz mieć partycję 25,4G
Zmiana rozmiaru (zmniejszanie) partycji
Zmniejszenie partycji jest procesem dwuetapowym, który obejmuje:
Przed zmniejszeniem pojemności systemu plików należy zmniejszyć rozmiar urządzenia blokowego (którym może być partycja lub wolumin logiczny). Ponieważ nie jest to dostępne dla żadnego systemu plików ext *, nie będzie można go zmniejszyć z 20 GB do 19,5 GB, aby utworzyć system wymiany 500 MB.
Nawet Ext4 nie obsługuje kurczenia się online. Jeśli spróbujesz to zrobić, otrzymasz:
O ile wiem, Twoim jedynym zakładem jest:
Zainstaluj inną wersję Ubuntu na tym samym serwerze (na innej partycji), której można następnie użyć do zmniejszenia partycji głównej oryginalnego serwera Ubuntu.
Zainstaluj serwer Ubuntu od zera w rozmiarze, którego faktycznie potrzebujesz
Użyj obrazu Live Ubuntu Server, aby zmienić rozmiar partycji. W takim przypadku musisz przejść do tego ekranu:
I wybierz opcję Zmień rozmiar, jak pokazano na powyższym obrazku. Stamtąd wybierzesz nowy rozmiar, ponieważ odtąd możesz odmontować jednostkę i zmniejszyć ją, jeśli chcesz.
Dodatkową pomocą jest tutaj system plików gparted suppor http://gparted.org/features.php, który podaje bardzo szczegółową listę obsługiwanych i obejmuje, jeśli mają one pełną zmianę rozmiaru online. Btrfs jest wśród nich.
źródło
The resize2fs program does not manipulate the size of partitions.
Odpowiedź zależy od tego, czy można odmontować partycję, aby ją zmniejszyć, czy nie. W twoim przypadku prawdopodobnie nie możesz odmontować partycji. W systemie Linux (UNIX / MAC OS) podłączenie partycji oznacza użycie systemu plików i odwzorowanie go na punkt montowania (w twoim przypadku
/
). Odmontowanie oznacza, że przestajesz używać systemu plików i usuwasz mapowanie do punktu montowania. Nie można odmontować systemu plików zawierającego działający system operacyjny.Jeśli partycja może być odmontowana
Załóżmy, że chcesz zmniejszyć partycję ext4 200 GB na
/dev/sda4
zamontowanym/data
. Obecnie zawiera muzykę i filmy lub podobne, więc możesz tymczasowo odmontować. Chcesz utworzyć zamianę 4 GB.odmontować partycję.
zmienić rozmiar systemu plików ext4 do 196 GB, przy założeniu, że jest wystarczająco dużo miejsca. Teraz musisz zmniejszyć partycję. Obecnie uważam, że musisz użyć,
cfdisk
aby usunąć istniejącą partycję i odtworzyć mniejszą partycję na jej miejscu. Następnie możesz także utworzyć nową partycję dla wymiany.da ci GUI tekstowe do sprawdzenia tablicy partycji.
print
W tym momencie poleciłbym Ci tablicę partycji do pliku lub ekranu i zanotuje bieżącą konfigurację jako kopię zapasową. Następnie możesz wybrać/dev/sda4
idelete
partycję. W jego miejscufree space
pojawi się. Użyj,new
aby utworzyć nową partycję z 196 GB na swoim miejscu i ustaw typ na ext4. Następnie przejdź do końcowej wolnej przestrzeni i utwórz partycję wymiany 4 GB z typemswap
. Uwaga: Nie testowałem tych poleceń, ponieważ/
w tej chwili nie mogę się nimi bawić .Jeśli partycji nie można odmontować
Nie można zmniejszyć zamontowanej partycji ext3 / 4 (patrz strona podręcznika
resize2fs
). Podczas uruchamiania systemu operacyjnego/
nie można odmontować/
. Oznacza to, że musisz wprowadzić inny system operacyjny (np. Z klucza USB), aby dokonać zmian.W twoim przypadku jest to serwer zdalny (najprawdopodobniej na KVM), więc może nie być możliwe uruchomienie z USB / obrazu systemu operacyjnego na żywo. Mogą istnieć inne sposoby zmiany partycjonowania od dostawcy vServer za pomocą GUI administratora. Uważam, że jest to obecnie twój najlepszy zakład.
źródło