Смонтируем каталог хоста внутри контейнера LXD.
Создайте каталог в операционной системе хоста.
$ sudo mkdir /mnt/disk/archivebox
Посмотрим файлы subuid и subgid.
$ ls /snap/lxd/current/etc/
bash_completion.d ethertypes logrotate.conf lvm nanorc protocols ubuntu-sb.crt vimrc
Пакет Snap не предоставляет эти файлы, поэтому начало диапазона uid/gid будет равно 1000000.
Это означает, что вам нужно использовать комбинацию 1002000:1002000 uid:gid, чтобы получить 2000:2000 uid:gid внутри гостевого экземпляра.
$ sudo chown -R 1002000:1002000 /mnt/disk/archivebox
Смонтируйте каталог хоста /mnt/disk/archivebox в /opt/archivebox внутри экземпляра archivebox.
$ sudo -i lxc config device add archivebox archivebox_directory disk source=/mnt/disk/archivebox path=/opt/archivebox
Device archivebox_directory added to archivebox
Каталог будет создан автоматически, а определенные пользователи и группы будут отражать идентификаторы подчиненных пользователей/групп.
$ sudo -i lxc exec archivebox -- stat /opt/archivebox
File: /opt/archivebox Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 800h/2048d Inode: 36306945 Links: 9 Access: (0755/drwxr-xr-x) Uid: ( 2000/archivebox) Gid: ( 2000/archivebox) Access: 2021-12-19 16:22:54.660738431 +0000 Modify: 2021-12-19 20:09:24.424730331 +0000 Change: 2021-12-19 20:09:24.424730331 +0000 Birth: 2021-12-19 16:22:54.660738431 +0000
В качестве альтернативы, он будет принадлежать пользователю 65534/nobody, если пропустить настройку идентификаторов подчиненных пользователей/групп.
Отображение конфигурации устройства для экземпляра archivebox
$ sudo -i lxc config device show archivebox
archivebox_directory: path: /opt/archivebox source: /mnt/disk/archivebox type: disk
Редактирование конфигурации:
$ sudo -i lxc config edit archivebox
### This is a YAML representation of the configuration. ### Any line starting with a '# will be ignored. ### ### A sample configuration looks like: ### name: instance1 ### profiles: ### - default ### config: ### volatile.eth0.hwaddr: 00:16:3e:e9:f8:7f ### devices: ### homedir: ### path: /extra ### source: /home/user ### type: disk ### ephemeral: false ### ### Note that the name is shown but cannot be changed architecture: armv7l config: image.architecture: armhf image.description: Debian bullseye armhf (20211219_05:25) image.os: Debian image.release: bullseye image.serial: "20211219_05:25" image.type: squashfs image.variant: default volatile.base_image: c5cb7135fbb8785c9971daf29709d4840efc3b2b4397684752ddd0f34f078dc5 volatile.eth0.host_name: vethd3c7b49e volatile.eth0.hwaddr: 00:16:3e:38:03:48 volatile.idmap.base: "0" volatile.idmap.current: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]' volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]' volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":1000000,"Nsid":0,"Maprange":1000000000},{"Isuid":false,"Isgid":true,"Hostid":1000000,"Nsid":0,"Maprange":1000000000}]' volatile.last_state.power: RUNNING volatile.uuid: 3cc4ff6e-e343-4312-b285-68b75272bdb0 devices: archivebox_directory: path: /opt/archivebox source: /mnt/disk/archivebox type: disk ephemeral: false profiles: - default stateful: false description: ""
Удалим конфигурацию устройства.
$ sudo -i lxc config device remove archivebox archivebox_directory
Device archivebox_directory removed from archivebox
см. также:
- ✔️ Как экспортировать каждый экземпляр LXD сразу
- 🐧 Обзор LXLE: Легкий дистрибутив Linux для старых компьютеров
- 🗃️ Как обновить tar-архив
- 🐧 Как проверить, установлен ли графический интерфейс в Linux из командной строки