Tworzenie i zmniejszanie obrazu dysku

Zdarzyła mi się taka sytuacje, w której musiałem przenieść system na inny dysk. Dysk źródłowy był większy od docelowego. Miałem już obraz dysku, który oczywiście nie mieścił się w nowej lokalizacji.
W pierwszej kolejności trzeba zmniejszyć partycję jeżeli zajmuje więcej miejsca niż nowy dysk.

Uwaga! Zanim zaczniesz przerabiać obraz, zrób jego kopię zapasową ponieważ mogą się zdarzyć nieodwracalne w skutkach błędy. Cały proces przeprowadziłem jako „super user” w systemie Ubuntu # sudo su.

Potrzebne narzędzia
# apt install gparted coreutils

Montowanie obrazu
# losetup -f
/dev/loop38
# losetup /dev/loop38 OpiZeg_disk_2.img
# partprobe /dev/loop38

Modyfikacja rozmiaru za pomocą GParted. Po wykonaniu poniższej komendy należy wybrać partycję, zmienić jej rozmiar i zapisać zmiany.
# gparted /dev/loop38

Odmontowanie obrazu
# losetup -d /dev/loop38

Informacje o partycjach a dokładnie o lokalizacji końca ostatniej w kolejności partycji
# fdisk -l OpiZeg_disk_2.img
Dysk OpiZeg_disk_2.img: 49,3 GiB, bajtów: 52888076288, sektorów: 103297024
Jednostki: sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Typ etykiety dysku: dos
Identyfikator dysku: 0x67b5d560

Urządzenie         Rozruch Początek    Koniec   Sektory Rozmiar Id Typ
OpiZeg_disk_2.img1             8192 103297023 103288832   49,3G 83 Linux

Odcinanie niepotrzebnej końcówki obrazu gdzie podajemy Koniec czyli w tym przypadku wartość 103297023 plus 1 sektor
truncate --size=$[(103297023+1)*512] OpiZeg_disk_2.img

Ostatecznie przerobiony obraz należy wgrać na nowy dysk za pomocą instrukcji dd lub „Kreatora nośnika rozruchowego”.