ubuntu linux 18.04 (arm64)でqemu-user-staticとchrootでubuntu linux 16.04 (i386)とx86バイナリをエミュレーションで動かす。

sudo apt install qemu-user-static

これでqemuとchrootの設定までされる。

次にubuntuのベースイメージをダウンロードして展開。
http://cdimage.ubuntu.com/ubuntu-base/releases/

http://cdimage.ubuntu.com/ubuntu-base/releases/16.04.6/release/
#wget ubuntu-base-16.04.6-base-i386…
#tar xvjf ubuntu-base-16.04.6-base-i386…

sudo chown root:root ubuntu-base-16.04.6-base-i386
cd ubuntu-base-16.04.6-base-i386
cd usr/bin
sudo cp /usr/bin/qemu-i386-static .
cd ../..

arm64からqemu-user-staticでi386にchrootすると/etc/resolv.confがあってもなぜかdnsが解決できない。/etc/hostsにdnsレコードを書くとネットワーク系のアプリケーションが動く

sudo echo 91.189.88.152    archive.ubuntu.com >> etc/hosts
sudo echo 91.189.88.142    security.ubuntu.com >> etc/hosts

このままだとxtermが動かないので、

cd ..
sudo mount -t sysfs sysfs ubuntu-base-16.04.6-base-i386/sys
sudo mount -t proc proc ubuntu-base-16.04.6-base-i386/proc
sudo mount -t devtmpfs udev ubuntu-base-16.04.6-base-i386/dev
sudo mount -t devpts devpts ubuntu-base-16.04.6-base-i386/dev/pts

xhost +

上のコマンドをしておき、あとはsudo chroot .

change rootされたシェルが立ち上がるので、

apt update
apt install xterm
DISPLAY=:0 xterm

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です