Jestem w trakcie zmiany rozmiaru zaszyfrowanej partycji LUKS, która zawiera pojedynczy system plików ext4 (brak LVM lub coś takiego). Cryptsetup FAQ zaleca, aby usunąć starą partycję i utwórz ją ponownie, ale to brzmi jak tracić dużo czasu. Dlatego chcę kontynuować ręcznie, ostrożnie zmieniając rozmiar partycji.
Jak dotąd uważam, że muszę zrobić:
- Utwórz (zaszyfrowaną) kopię zapasową systemu plików. Ważny! Nie będziesz pierwszy stracić danych podczas wykonywania następujących zadań.
- Odmontuj istniejący system plików ext4 (np. Poprzez uruchomienie z Live CD). W przypadku uruchamiania z Live CD zamontuj zaszyfrowaną partycję za pomocą
cryptsetup luksOpen /dev/sdXY ExistingExt4
- Zmień rozmiar istniejącego systemu plików ext4 .
cryptsetup resize /dev/mapper/ExistingExt4 -b $SECTORS
- Zamknij / „odmontuj” partycję LUKS za pomocą
cryptsetup luksClose ExistingExt4
- Zmniejsz rozmiar partycji.
Czy powyższe kroki są prawidłowe?
W kroku 4, po co mam wybierać $SECTORS
? Czy ten krok jest w ogóle konieczny? Strona cryptsetup
podręcznika nie jest tak naprawdę opisowa dla resize
opcji:
resize <name>
resizes an active mapping <name>.
If --size (in sectors) is not specified, the size of the underlying
block device is used.
Wreszcie, jeśli zmniejszę partycję ext4 o 15 GiB, czy mogę bezpiecznie założyć, że 15 GiB można usunąć z istniejącej partycji przy użyciu parted
? Jeśli tak, jak to zrobić? Mój dysk jest podzielony na partycje GPT, jeśli to ma znaczenie.
źródło
Odpowiedzi:
Po utworzeniu kopii zapasowej (krok 1) i odmontowaniu (od 2 do 3) uruchom,
fsck
aby upewnić się, że system plików jest w dobrej kondycji:Poza tym kroki są w porządku.
Ten krok jest konieczny, w przeciwnym razie partycja nadal pojawiałaby się po starej stronie. Potwierdza to Nautilus, nawet po zmianie rozmiaruTen krok nie jest konieczny. Wpływa tylko na aktualny stan rozmiaru pokazany w przeglądarce plików. Po zmianie rozmiaru i ponownym zamknięciu / otwarciu partycji numer jest przywracany. Tak więc, kiedy zamkniesz partycję LUKS, jak pokazano później, spowoduje to, że będzie to przestarzałe.resize2fs
partycja LUKS pojawiła się jako stary rozmiar. Po uruchomieniucryptsetup resize
wyświetlany jest poprawny numer.$SECTORS
można ustalić, patrząc na wynikcryptsetup status ExistingExt4
:Jeden sektor ma zawsze 512 bajtów (wymienionych na
cryptsetup
stronie podręcznika). Zatem, aby odjąć 15 GiB, użyj rozmiaru sektora156049348 - 15 * 1024 * 1024 * 2 = 124592068
:Jeśli chodzi o zmianę rozmiaru partycji,
parted
działa dobrze z partycjami GPT.resize
Komenda nie działa jednak, jako obejście (lub roztworu), usunąć informacje o partycji i tworzy nową partycję jako inspirowane przez http://ubuntuforums.org/showthread.php?p=8721017#post8721017 :Ponieważ 15 GiB musi zostać ogolony, nowy koniec staje się
156301438 - 15 * 1024 * 1024 * 2 = 124844158
. Ponieważ chcę zmienić partycję 2, najpierw muszę ją usunąć, a następnie odtworzyć z etykietą „Wszystko” (można to zmienić, jeśli chcesz). Uwaga : ten dysk ma układ GPT. W przypadku MBR należy zastąpićEverything
przezprimary
lubextended
(nieprzetestowane, zmiana rozmiaru partycji na MBR nie została przetestowana i nie jest zalecana, ponieważ jest nie przetestowana).OSTRZEŻENIE : następujące polecenia zniszczyły dane . Nie kopiuj go bez zrozumienia, co się dzieje. Wymiary sektora musi być zmieniony, inaczej BĘDZIE zniszczyć partycji (y). Nie jestem w żaden sposób odpowiedzialny za twoją głupotę, BACKUP BACKUP BACKUP twoich danych na drugi nośnik pamięci, zanim zaryzykuję twoje dane.
W powyższym
parted
przykładzie moje sektory nie są wyrównane, co jest błędem z wcześniejszej instalacji, nie zwracaj na to zbyt dużej uwagi.To jest to! Możesz użyć
cryptsetup status
ifile -Ls /dev/...
do sprawdzenia, czy wszystko jest w porządku, a następnie uruchom ponownie.źródło
rm 2
imkpart [part-type] [start] [end]
można również użyćresizepart 2 [end]
do zmiany rozmiaru partycji bez zmiany nazwy lub rozpoczęcia przesunięcia.Pamiętaj, że KDE Partition Manager 2.2.0 może wykonać te kroki, a zmiana rozmiaru partycji LUKS działa dobrze.
źródło