10 sierpnia 2013 blog raspberry qemu
Usunięcie zawartości pliku ld.so.preload
jest konieczne, żeby móc się zalogować.
Montowanie partycji z obrazu:
$ sudo fdisk -lu 2013-07-26-wheezy-raspbian.img
Dysk 2013-07-26-wheezy-raspbian.img: 1939 MB, bajtów: 1939865600, sektorów: 3788800
Jednostka = 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: 0x00047c7a
Urządzenie Rozruch Początek Koniec Bloków ID System
2013-07-26-wheezy-raspbian.img1 8192 122879 57344 c W95 FAT32 (LBA)
2013-07-26-wheezy-raspbian.img2 122880 3788799 1832960 83 Linux
Offset do polecenia mount
można otrzymać poprzez pomnożenie bloku początkowego (122880) przez 512.
$ sudo fdisk -lu 2013-07-26-wheezy-raspbian.img | grep img2 | awk '{print($2*512);}'
62914560
Czyli zamontowanie sprowadza się do polecenia:
mkdir /mnt/qemuimg
sudo mount 2013-07-26-wheezy-raspbian.img -o offset=62914560 /mnt/qemuimg
Następnie:
# czyścimy ld.so.preload
sudo rm -f /mnt/qemuimg/etc/ld.so.preload
sudo touch /mnt/qemuimg/etc/ld.so.preload
# odmontowujemy
sudo umount /mnt/qemuimg
Ściągnięcie kernela:
wget http://xecdesign.com/downloads/linux-qemu/kernel-qemu
Włączenie systemu:
qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 ro" -net nic,vlan=1 -net user,vlan=1 -hda 2013-07-26-wheezy-raspbian.img -redir tcp:5022::22
Można wykonać dopiero po instalacji i wstępnej konfiguracji systemu!
Powiększamy plik i montujemy go jako urządzenie loop:
truncate -s 8G 2013-07-26-wheezy-raspbian.img
sudo losetup -fv 2013-07-26-wheezy-raspbian.img
Uruchamiamy fdisk:
sudo fdisk /dev/loop0
Wyświetlenie listy partycji (litera p
):
Witamy w programie fdisk (util-linux 2.23.2).
Zmiany pozostaną tylko w pamięci do chwili ich zapisania.
Przed użyciem polecenia zapisu prosimy o ostrożność.
Polecenie (m wyświetla pomoc): p
Widać już powiększony dysk:
Dysk /dev/loop0: 8589 MB, bajtów: 8589934592, sektorów: 16777216
Jednostka = 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: 0x00047c7a
Urządzenie Rozruch Początek Koniec Bloków ID System
/dev/loop0p1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/loop0p2 122880 3788799 1832960 83 Linux
Usuwamy drugą partycję (d
, 2
):
Polecenie (m wyświetla pomoc): d
Numer partycji (1,2, domyślnie 2):
Partycja 2 usunięta
Tworzymy nową partycję (n
, enter
, enter
, 122880
). Trzeba podać początek zgodny z tym, co widać wyżej (122880).
Polecenie (m wyświetla pomoc): n
Typ partycji:
p główna (głównych: 1, rozszerzonych: 0, wolnych: 3)
e rozszerzona
Wybór (domyślne p):
Przyjęto wartość domyślną p
Numer partycji (2-4, domyślnie 2):
Pierwszy sektor (2048-16777215, domyślnie 2048): 122880
Ostatni sektor, +sektorów lub +rozmiar{K,M,G} (122880-16777215, domyślnie 16777215):
Przyjęto wartość domyślną 16777215
Partycja 2 typu Linux o rozmiarze 8 GiB ustawiona
Zapisanie zmian (w
):
Polecenie (m wyświetla pomoc): w
Tablica partycji została zmodyfikowana!
Wywoływanie ioctl() w celu ponownego odczytu tablicy partycji.
UWAGA: ponowny odczyt tablicy partycji zakończył się błędem 22: Zły argument.
Jądro nadal używa starej tablicy. Nowa tablica będzie używana po
następnym restarcie systemu albo po uruchomieniu partprobe(8) lub kpartx(8)
Synchronizacja dysków.
Odłączamy urządzenie loop0:
sudo losetup -d /dev/loop0
Po uruchomieniu Raspbiana używamy resize2fs
:
pi@pi:~$ sudo resize2fs /dev/sda2
resize2fs 1.42.5 (29-Jul-2012)
System plików /dev/sda2 jest zamontowany pod /; wymagana zmiana rozmiaru w locie
old_desc_blocks = 1, new_desc_blocks = 1
System plików na /dev/sda2 ma teraz 2081792 bloków.
Sprawdzenie:
pi@pi:~$ df -h
System plików rozm. użyte dost. %uż. zamont. na
rootfs 7,9G 1,5G 6,1G 20% /
/dev/root 7,9G 1,5G 6,1G 20% /
devtmpfs 124M 0 124M 0% /dev
tmpfs 25M 192K 25M 1% /run
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 50M 0 50M 0% /run/shm
Ponowne uruchomienie:
pi@pi:~$ sudo reboot