Open tkmtnt7000 opened 2 years ago
次起こったら
/proc/sys/fs/binfmt_misc/qemu-aarch64
があるかとか
docker images -a
の結果,とかも調べておいてください。
再現したので貼っておきます. qemu-aarch64はちゃんとありそうです
$ ls /proc/sys/fs/binfmt_misc/qemu-aarch64
/proc/sys/fs/binfmt_misc/qemu-aarch64
$ docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
ros1-unitree arm64v8 89945ffd73c0 5 weeks ago 2.77GB
multiarch/qemu-user-static latest cd504ee34e34 6 weeks ago 301MB
tkmtnt7000/ubuntu-ros ros_melodic_cuda9.2 1aec6de092ec 4 months ago 6.51GB
ros_noetic_cuda11.3_torch1.10 latest 2c8fd243c242 4 months ago 14.4GB
tkmtnt7000/ros_noetic_cuda11.3_torch1.10 latest 2c8fd243c242 4 months ago 14.4GB
<none> <none> 0f9de5d9e769 4 months ago 14.4GB
<none> <none> 117a49eb5ecf 4 months ago 14.4GB
<none> <none> ed11106bf757 4 months ago 14.4GB
<none> <none> e70ede7373a8 4 months ago 14.4GB
<none> <none> efbd169186de 4 months ago 14.4GB
<none> <none> e198f2b12a3f 4 months ago 14.4GB
<none> <none> 993d06f48e93 4 months ago 14.4GB
<none> <none> 4d294c317b71 4 months ago 14.4GB
<none> <none> 159fad071c7b 4 months ago 14.4GB
<none> <none> 15531ed98210 4 months ago 14.4GB
<none> <none> 8663dc003013 4 months ago 14.4GB
<none> <none> cca2a3a2a2d7 4 months ago 14.4GB
<none> <none> 4aa8887b76b0 4 months ago 14.4GB
<none> <none> e4656f036332 4 months ago 14.4GB
<none> <none> 6ccbe1f9de24 4 months ago 14.4GB
<none> <none> 335394988b1a 4 months ago 14.3GB
<none> <none> 8993168083e9 4 months ago 14.3GB
<none> <none> 6c17b66c7c85 4 months ago 8.63GB
<none> <none> 90568d46361e 4 months ago 8.26GB
<none> <none> 470fb25a1a66 4 months ago 4.77GB
<none> <none> 99e0a235a141 4 months ago 4.77GB
<none> <none> cee2899b9a57 4 months ago 4.77GB
<none> <none> 4ce30a935d76 4 months ago 4.77GB
<none> <none> a06f2069134e 4 months ago 4.73GB
<none> <none> e4a25984ed91 4 months ago 4.73GB
<none> <none> 8b9f2fe57eb3 4 months ago 4.73GB
<none> <none> 3520306235a0 4 months ago 4.73GB
<none> <none> 8f3b9c4c7f7f 4 months ago 4.55GB
<none> <none> 51092acdc88a 4 months ago 4.55GB
cyberbotics/webots latest 4ecfa15db757 7 months ago 5.5GB
ubuntu 20.04 ba6acccedd29 9 months ago 72.8MB
nvidia/cudagl 11.3.1-devel-ubuntu20.04 3fe4ef68781b 10 months ago 4.55GB
wkentaro/labelme latest 67b1864c03f4 13 months ago 848MB
hello-world latest d1165f221234 16 months ago 13.3kB
nvidia/cuda 11.1-devel-ubuntu20.04 0185bd6d8ed9 19 months ago 4.76GB
なるほど,スクリプトに
docker run -it --rm ros1-unitree:arm64v8 bash -c 'exit' || docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
とか追加したらいいのかな?
追加すると良さそうでした.プルリク出します. 簡単に自分のメモも兼ねてmultiarch/qemu-user-staticの--resetオプションについて書いておくのですが,
この--reset
オプションをつけることで/proc/sys/fx/binfmt_misc/qemu-*
を実行時に登録し直すことができる.(エラーが出たら--resetをつけてみるとよさそうという雰囲気を出した説明が書かれている.)
https://github.com/multiarch/qemu-user-static#getting-started
https://github.com/multiarch/qemu-user-static#multiarchqemu-user-static-images
なぜ登録し直すかというと...(まだよく理解しているわけではありませんが)
/proc/sys/fs/binfmt_misc/qemu*
が書き換わる(flags: F ==> flags: OC)# /proc/sys/fs/binfmt_misc/qemu-arm
enabled
interpreter /usr/bin/qemu-arm-static
flags: OC
offset 0
magic 7f454c4601010100000000000000000002002800
mask ffffffffffffff00fffffffffffffffffeffffff
(参考: https://docs.kernel.org/admin-guide/binfmt-misc.html, https://stackoverflow.com/questions/55115177/usage-of-reset-and-register-tag-in-docker-run-command)
cc:@iory @a-ichikura Linux環境でmake userを久しぶりに実行すると/bin/bashがないと出てエラーになります. (M1 macではqemuを使わないので起こりません) 一時的な解決法としては
として,multiarch/qemu-user-staticを入れ直すと直ります.
実行時の挙動は以下のとおりです.