それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

lxcのコンテナがホスト側のブロックデバイス(SSD)に直接アクセスできるように

LXCのコンテナから、ホストのHDDを参照したい。

色々やり方がある。一番かんたんなのは privileged をつけて特権コンテナにする。

lxc launch ubuntu:xenial <container name> -c security.privileged=true

実際にやってみると。次のようになる。ちゃんとホスト側のブロックデバイスやUSBデバイスが見え、マウントはできることがわかる。

takuya@raspberrypi:~ $ lxc launch ubuntu:xenial test -c security.privileged=true
takuya@raspberrypi:~ $ lxc shell test
root@test:~# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop1         7:1    0  54.3M  1 loop
loop4         7:4    0   4.7G  0 loop /
loop2         7:2    0  83.6M  1 loop
loop0         7:0    0    20K  1 loop
sda           8:0    0 447.1G  0 disk
`-sda1        8:1    0 447.1G  0 part
mmcblk0     179:0    0  29.7G  0 disk
|-mmcblk0p2 179:2    0  29.5G  0 part
`-mmcblk0p1 179:1    0   256M  0 part
loop3         7:3    0  45.9M  1 loop
root@test:~# lsusb
Bus 002 Device 002: ID 056e:6a06 Elecom Co., Ltd
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 25a7:fa61
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

非特権コンテナでも見えるには見えるのだけれど。マウントはできません。

root@nonpre-container:~# mount /dev/sda1 /mnt
mount: /mnt: permission denied.

config disk add

ディスクをAddすることもできる。

lxc config device add container01 homedir disk source=/home/ path=/home/

参考資料

https://github.com/lxc/lxd/issues/2667