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”.