Tak, zmiana rozmiaru rozruchu jest możliwa, ale jest bardzo skomplikowana. Spróbowałbym tego dopiero po utworzeniu kopii zapasowej WSZYSTKICH danych. Jeśli popełnisz błąd, ryzyko utraty danych jest dość wysokie. Będziesz chciał mieć gotowy do rozruchu system Ubuntu Live USB / CD, ponieważ powinieneś wykonywać te operacje po uruchomieniu na żywo USB / CD.
Dawno temu dowiedziałem się, kiedy społeczność linuxowa zmienia wymagania dotyczące wymaganego rozmiaru partycji rozruchowej. Wcześniej 100-200 MB wystarczało na rozruch, ale potem społeczność podwoiła swoje wymagania dotyczące rozmiaru. Wpłynęło to na użytkowników, którzy postępowali zgodnie z poprzednimi wytycznymi.
/server/334663/what-is-the-recommended-size-for-a-linux-boot-partition
Aktualne wymagania dotyczące / boot odsyłam do oficjalnych wytycznych.
https://help.ubuntu.com/community/DiskSpace
W momencie pisania tego tekstu wytyczne zalecają / bootują z 250 MB do 1 GB miejsca. Poleciłbym osobną partycję rozruchową z największą wymaganą przestrzenią. Partycja rozruchowa musi być niezaszyfrowana podczas procesu rozruchu. Proces uruchamiania będzie montował po drodze różne zaszyfrowane partycje, na przykład zaszyfrowane dyski LUKS lub zaszyfrowane katalogi HOME, i istnieją różnice między tymi podejściami. Z mojego doświadczenia wynika, że używanie różnych opcji szyfrowania dysku twardego Ubuntu powoduje problemy przy późniejszej aktualizacji Ubuntu, wymagającej ręcznej interwencji.
Ogólny przegląd odsyłam do tego artykułu, który uważam za dobrze napisany.
„LUKS szyfruje wiele partycji na Debian / Ubuntu za pomocą jednego hasła”
https://www.martineve.com/2012/11/02/luks-encrypting-multiple-partitions-on-debianubuntu-with-a-single-passphrase/
Gdy zauważysz potrzebę zmiany partycji, ten post był dla mnie bardzo pomocny.
„Jak zmienić rozmiar zaszyfrowanego systemu plików LUKS”
https://ubuntuforums.org/showthread.php?t=726724
Ponieważ gparted nie obsługuje przenoszenia zaszyfrowanych partycji LUKS, nie można tego zrobić za pomocą poleceń gparted z wiersza poleceń ani z GUI. Odkryłem, że możesz użyć gparted do utworzenia partycji, a następnie użyć dd do przeniesienia zaszyfrowanych partycji za pomocą kopii sektor po sektorze. Wiąże się to z możliwością obliczenia wielkości części w odniesieniu do sektorów. Pomyłka oznacza utratę danych i ponowną instalację.
W moim przypadku muszę zwiększyć rozmiar mojej partycji rozruchowej z 537 MB do 1 GB. Potrzebuję tego w ramach mojej aktualizacji z Ubuntu 12.04 do 14.04, aby aktualizacja Ubuntu mogła znaleźć wystarczającą ilość miejsca na / boot. Tak, możesz usunąć autorove, aby zwolnić miejsce w / boot, ale ogólne wymagania uległy zmianie, więc powiększałem boot, aby dostosować się do tych wytycznych. Oto mój układ partycji.
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot
2 538MB 794MB 256MB ext2
3 794MB 240GB 239GB
Mam zaszyfrowany dysk LUKS w części nr 3 i mój rozruch w partycji nr 1, więc nie było wystarczającej ilości miejsca na rozszerzenie / boot. Uwaga Gparted nie może przenieść partycji nr 3, ponieważ jest to partycja szyfrowana. Aby to naprawić, utworzyłem czwartą partycję na końcu mojego dysku tego samego rozmiaru w sektorach i użyłem dd do skopiowania zawartości partycji 3 na partycję 4. Uważam, że warto zmienić rozmiar mojego katalogu głównego na niezbędny minimalny rozmiar. W związku z tym wykonałem następujące operacje, aby rozwiązać kwestię rozmiaru mojego / boot.
- Zmniejsz główny system plików na partycji nr 3
- Zmieniłem rozmiar partycji nr 3 (aby była mniejsza)
- Utworzono partycję nr 4 o tym samym rozmiarze (na końcu dysku)
- Wykorzystano DD do skopiowania sektorów partycji nr 3 na partycję nr 4
- Usunięto partycję nr 3, aby zwolnić miejsce na dysku
- Wykorzystano Gparted do zmiany rozmiaru i przeniesienia partycji # 1 i # 2
- Utworzono nową część nr 3 o tym samym rozmiarze co zmniejszoną część 3 (lub partycję nr 4)
- Użyto DD do skopiowania sektorów partycji # 4 na partycję # 3
- Usuń partycję # 4
- Rozwiń rozmiar partycji # 3 do pierwotnej wielkości # 3
- Zaktualizowano system plików zawarty w zaszyfrowanej partycji # 3 do pozostałego miejsca
W ten sposób mogłem usunąć partycję # 3 i użyć gparted do przenoszenia i powiększania partycji # 1 i # 2. Przeczytanie powyższych przewodników powinno zapewnić wystarczająco dużo wglądu, aby przejść dalej. Nie pokazano go tutaj, ale zmniejszając partycję główną, usunąłem grupę woluminów wymiany na tej samej partycji i odtworzyłem ją na końcu. Wszystko to odbywa się podczas uruchamiania na dysku flash USB Live Linux. Oto kilka moich notatek, które nie były łatwo dostępne w powyższych przewodnikach.
Uznałem, że blockdev jest użyteczny w wyświetlaniu rozmiaru partycji w sektorach. Pomogło mi to, gdy obliczałem rozmiary sektora.
sudo blockdev --getsize /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p2
499712
Polecenie Gparted „jednostka s” wyświetli tablicę partycji w sektorach. Cała zmiana rozmiaru partycji, usuwanie i tworzenie odbywa się za pomocą Gparted. W ten sposób możesz po prostu wykonać całą matematykę w sektorach. „Unit compact” przełączy się z powrotem na format MB / GB, jeśli chcesz zobaczyć, jak wygląda matematyka sektora.
(parted) unit s
(parted) p
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Number Start End Size File system Name Flags
1 2048s 1050623s 1048576s fat32 boot
2 1050624s 1550335s 499712s ext2
3 1550336s 456656896s 455106561s
Polecenie resize2fs ma sprytną opcję zmiany rozmiaru do minimum. Podczas tej części usunąłem również grupę woluminów wymiany.
ubuntu@ubuntu:~$ sudo resize2fs -M -p /dev/ubuntu-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Resizing the filesystem on /dev/ubuntu-vg/root to 2261211 (4k) blocks.
Begin pass 3 (max = 1600)
Scanning inode table XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/ubuntu-vg/root is now 2260992 blocks long.
Po zmianie rozmiaru tabel partycji wróć i zaktualizuj gparted. Użyto 4096 * 2260992, a następnie blockdev, aby sprawdzić matematykę tutaj. Oto polecenie gparted.
(parted) resizepart 3
End? [224419843s]? 225970179s
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? yes
Device /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p3 not found
device-mapper: table ioctl on failed: No such device or address
(parted) p
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Number Start End Size File system Name Flags
1 2048s 1050623s 1048576s fat32 boot
2 1050624s 1550335s 499712s ext2
3 1550336s 225970179s 224419844s
Zauważ, że liczba sektorów na partycji nr 3 jest mniejsza niż moja pierwotna lista, tzn. W ten sposób możesz użyć gparted do utworzenia partycji nr 4 przed kopią DD. Zmniejszenie zwalnia więcej miejsca na dysku dla tej kopii.
ubuntu@ubuntu:~$ sudo dd if=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 of=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 bs=512 skip=1550336 count=224419844 seek=244437218
224419844+0 records in
224419844+0 records out
114902960128 bytes (115 GB) copied, 2146.1 s, 53.5 MB/s
Po skopiowaniu DD przejdź dalej i powiększ rozmiar partycji / boot. Usuniesz oryginalną partycję # 3, a następnie ponownie utworzysz partycję # 3 w nowej lokalizacji sektora po powiększonych partycjach # 1 i # 2. Ponownie zastosowano blockdev do pomiaru wielkości sektora. Utworzyłem tę partycję # 3 o takim samym rozmiarze jak partycja # 4, która jest mniejsza niż pierwotnie # 3. Użyj DD, aby skopiować sektory # 4 na partycję # 3.
ubuntu@ubuntu:~$ sudo dd if=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 of=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 bs=512 skip=244437218 count=224419844 seek=9242624
Po skopiowaniu usuń partycję # 4 i rozwiń rozmiar partycji # 3. W moim przypadku właśnie przywróciłem partycję nr 3 do rozmiaru z początku. Miałem dość miejsca, aby to zrobić.
(parted) resizepart 3
End? [464349185s]? 464349184s
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? y
Device /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p3 not found
device-mapper: table ioctl on failed: No such device or address
(parted) p
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Number Start End Size File system Name Flags
1 2048s 4192255s 4190208s fat32 boot
2 5146624s 9242623s 4096000s ext2
3 9242624s 464349184s 455106561s
Gdy gparted zwiększy rozmiar partycji, nie aktualizuje systemu plików. Zauważ, że system plików jest zawarty w zaszyfrowanej partycji, więc aby ją zmienić, należy go otworzyć i zamontować. Użyj następującego polecenia, aby to naprawić. W razie potrzeby można to zrobić w systemie na żywo.
user@zagyg:/$ sudo resize2fs /dev/ubuntu-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/ubuntu-vg/root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 13
The filesystem on /dev/ubuntu-vg/root is now 54266880 blocks long.
Podsumowując, Gparted nie obsługuje natywnie swojej operacji, ale jest to niezwykle przydatne narzędzie do zarządzania partycjami. Moim zdaniem jest nieco bardziej przydatny niż fdisk. Pomiędzy Gparted i DD mogłem zarządzać moimi partycjami, a następnie użyć narzędzi Ubuntu do aktualizacji z 12.04 LTS do 14.04 LTS.