vmdkをdockerコンテナ内でマウントする
Ubuntu cloud imageの初期状態のディスク内容を見たかったので、vmdkを直接マウントすることにした。ホストにいろいろインストールするのは避けたいので、dockerコンテナ内でやることにした。guestmount
コマンドを使う。ホストはUbuntu 18.04。
Ubuntu cloud-imageダウンロード
$ wget https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.ova $ tar tvf focal-server-cloudimg-amd64.ova -rw-r--r-- root/root 10760 2021-05-03 17:59 ubuntu-focal-20.04-cloudimg.ovf -rw-r--r-- root/root 213 2021-05-03 17:59 ubuntu-focal-20.04-cloudimg.mf -rw-r--r-- root/root 539142656 2021-05-03 17:59 ubuntu-focal-20.04-cloudimg.vmdk $ tar xf focal-server-cloudimg-amd64.ova ubuntu-focal-20.04-cloudimg.vmdk
コンテナ起動
fuseが必要になるので、/dev/fuseをマウントすると共に、必要な権限を追加する(cap-add, security-opt) (ref)$ docker run -it --rm -v $(pwd)/ubuntu-focal-20.04-cloudimg.vmdk:/tmp/ubuntu-focal-20.04-cloudimg.vmdk \ --device /dev/fuse --cap-add SYS_ADMIN --security-opt apparmor:unconfined \ ubuntu:20.04 bash
パッケージインストール
ref# apt update && \ DEBIAN_FRONTEND=noninteractive apt install \ --no-install-recommends -y \ libguestfs-tools qemu-utils linux-image-generic
マウント
guestmount
は少し時間かかる。# guestmount -a /tmp/ubuntu-focal-20.04-cloudimg.vmdk -i --ro /mnt # ll /mnt total 88 drwxr-xr-x 19 root root 4096 May 3 21:45 ./ drwxr-xr-x 1 root root 4096 Jun 17 15:32 ../ lrwxrwxrwx 1 root root 7 May 3 21:39 bin -> usr/bin/ drwxr-xr-x 4 root root 4096 May 3 21:45 boot/ drwxr-xr-x 5 root root 4096 May 3 21:42 dev/ drwxr-xr-x 91 root root 4096 May 3 21:45 etc/ drwxr-xr-x 2 root root 4096 Apr 15 2020 home/ lrwxrwxrwx 1 root root 7 May 3 21:39 lib -> usr/lib/ lrwxrwxrwx 1 root root 9 May 3 21:39 lib32 -> usr/lib32/ lrwxrwxrwx 1 root root 9 May 3 21:39 lib64 -> usr/lib64/ lrwxrwxrwx 1 root root 10 May 3 21:39 libx32 -> usr/libx32/ drwx------ 2 root root 16384 May 3 21:45 lost+found/ drwxr-xr-x 2 root root 4096 May 3 21:39 media/ drwxr-xr-x 2 root root 4096 May 3 21:39 mnt/ drwxr-xr-x 2 root root 4096 May 3 21:39 opt/ drwxr-xr-x 2 root root 4096 Apr 15 2020 proc/ drwx------ 2 root root 4096 May 3 21:42 root/ drwxr-xr-x 3 root root 4096 May 3 21:42 run/ lrwxrwxrwx 1 root root 8 May 3 21:39 sbin -> usr/sbin/ drwxr-xr-x 6 root root 4096 May 3 21:42 snap/ drwxr-xr-x 2 root root 4096 May 3 21:39 srv/ drwxr-xr-x 2 root root 4096 Apr 15 2020 sys/ drwxrwxrwt 2 root root 4096 May 3 21:42 tmp/ drwxr-xr-x 15 root root 4096 May 3 21:41 usr/ drwxr-xr-x 13 root root 4096 May 3 21:42 var/
見れた!