Raspbian w Qemu
10 sierpnia 2013 blog raspberry qemu
Uruchomienie systemu dla Raspberry Pi (Raspbian) w emulatorze Qemu.
Raspbian w Qemu
10 sierpnia 2013 blog raspberry qemu
Uruchomienie systemu dla Raspberry Pi (Raspbian) w emulatorze 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