lxc 内で パーミッションエラー
lxc のapt を最新版にしようとしたらエラーになった。
lxc exec myhost apt update
chown to _apt:root of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted) W: chown to _apt:root of directory /var/lib/apt/lists/auxfiles failed - SetupAPTPartialDirectory (1: Operation not permitted)
/var/lib/apt/lists の中がおかしい
nobody になってる。。。
lxc exec myhost ls -l /var/lib/apt/lists/partial/ -ld drwx------ 1 nobody nogroup 0 Aug 18 19:05 /var/lib/apt/lists/partial/
ただしくはこうなるはず
ssh root@sample ls /var/lib/apt/lists/partial/ -ld drwx------ 2 _apt root 6 8月 18 11:48 /var/lib/apt/lists/partial/
lxc のストレージをマウントして修正を試みる
lxc storage list
+-----------+--------+----------------------------------------------+-------------+---------+---------+ | NAME | DRIVER | SOURCE | DESCRIPTION | USED BY | STATE | +-----------+--------+----------------------------------------------+-------------+---------+---------+ | bt01 | btrfs | /var/snap/lxd/common/lxd/disks/bt01.img | | 4 | CREATED | +-----------+--------+----------------------------------------------+-------------+---------+---------+ | default | zfs | /var/snap/lxd/common/lxd/disks/default.img | | 2 | CREATED | +-----------+--------+----------------------------------------------+-------------+---------+---------+
ストレージを利用しているコンテナを確認し、念のため一時的に停止しておく
$ lxc storage info bt01 info: description: "" driver: btrfs name: bt01 space used: 19.04GiB total space: 49.94GiB used by: instances: - jitsi - nextcloud - rails - rclone-web $ lxc stop jitsi nextcloud rails rclone-web
ストレージをマウントして様子を見る
$ losetup | grep bt01 /dev/loop7 0 0 1 0 /var/snap/lxd/common/lxd/disks/bt01.img 1 512 $ losetup | grep bt01 | awk '{print $1}' /dev/loop7 $ sudo mount $(losetup | grep bt01 | awk '{print $1}') /mnt $ ls /mnt $ sudo ls /mnt/containers/nextcloud/rootfs $ sudo ls /mnt/containers/nextcloud/rootfs/var/lib/apt
様子を見ると、
$ sudo ls /mnt/containers/nextcloud/rootfs/var/lib/apt $ sudo ls /mnt/containers/nextcloud/rootfs/var/lib/apt/lists -l total 145820 drwxr-xr-x 1 root root 0 Aug 18 19:05 auxfiles -rw-r--r-- 1 1000000 1000000 115942 Jul 9 19:14 debian-mirror.s -rw-r--r-- 1 1000000 1000000 45506443 Jul 9 18:12 debian-mirror.s -rw-r--r-- 1 1000000 1000000 52296931 Jul 9 18:14 debian-mirror.s -rw-r--r-- 1 1000000 1000000 17446169 Jul 9 18:13 debian-mirror.s -rw-r--r-- 1 1000000 1000000 30235019 Jul 9 18:12 debian-mirror.s -rw-r--r-- 1 1000000 1000000 44066 Aug 18 17:20 debian-mirror.s -rw-r--r-- 1 1000000 1000000 9833 Jun 12 04:58 debian-mirror.s drwx------ 2 _apt root 6 8月 18 11:48 /mnt/containers/nextcloud/rootfs/var/lib/apt/lists/partial/
なんかおかしいので、 全部消して、作り直した。
sudo rm -rf /mnt/containers/nextcloud/rootfs/var/lib/apt/lists sudo mkdir /mnt/containers/nextcloud/rootfs/var/lib/apt/lists sudo chown 1000000 :1000000 /mnt/containers/nextcloud/rootfs/var/lib/apt/lists
パーミッションエラーは出なくなった。
なぜ、パーミッションがおかしくなったのかは謎だけど。バックアップとか書き戻しでミスしてたかもしれない。
まとめ
lxc のストレージは直接サワれるっていうことをメモとして残しておく。
パーミッションエラーでもなんとかなるんだなというのが学び。