Я могу себе представить одно решение, которое я попытаюсь протестировать позже, — это использование переменных окружения systemd или среды выполнения systemd , и пусть ваш сценарий пароля offlineIMAP повторяет переменную окружения, которая пароль. Вы также можете попробовать использовать клиентские сертификаты
.
Таким образом, решение состояло в том, чтобы просто правильно прочитать мой конфигурационный файл schroot. В нем говорилось:
$ cat /etc/schroot/chroot.d/sid64
[...]
profile=desktop
Поэтому мне нужно отредактировать файл :/etc/schroot/desktop/fstab
, а не/etc/schroot/default/fstab
(рабочий стол != по умолчанию).
Я использовал:
$ tail -1 /etc/schroot/desktop/fstab
/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 none rw,bind 0 0
А теперь у меня есть:
$ schroot -c sid
(sid64)$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
└─sda1 8:1 0 1.8T 0 part /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 650M 0 part
└─nvme0n1p2 259:2 0 372.5G 0 part /var/lib/dbus
1. Your root fs is on the pt : "nvme0n1p2"
2. The device `sda1` is mounted on: "/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231"
3. Your chroot is created under : "/home/malat/debian/sid-root/"
4. The schroot mnt-pnt shall be : "/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231" (in chroot)
Ваша первая ошибка при первой попытке:
Вы попытались автоматически -смонтировать раздел sda1
вместо указания точки монтирования -уже смонтированной файловой системы:
/dev/disk/by-uuid/dbc64c37-340a-49e5-8184-a69e01e5e231 /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 none rw,bind 0
Вместо этого это должно выглядеть так:
/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 none rw,bind 0 0
Разделы никогда не монтируются с помощью привязки, монтируются уже смонтированные каталоги или даже файлы. Правильная конфигурация для /etc/fstab
в вашем chroot будет выглядеть так:
/dev/disk/by-uuid/dbc64c37-340a-49e5-8184-a69e01e5e231 /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 ext4 rw,nosuid,nodev,relatime,x-gvfs-show 0 0
Вы НЕ делаете этого -, если только вы не размонтировали sda1
вне chroot! Фактически вы дважды смонтируетеsda1
ДВАЖДЫ и, следовательно, повредите fs, если это вообще возможно.
Ваша вторая попытка вне chroot должна была сработать:
sudo mount --rbind /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
Но вывод mount
не соответствует:
/dev/sda1 on /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231/malat/debian/sid-root/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 type ext4 (rw,nosuid,nodev,relatime)
Первый вывод lsblk
сообщил нам, что для дерева home
нет раздела! Так почему же mount указывает, что точка монтирования bind
находится на /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231/malat/debian/sid-root/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
? Правильный путь должен быть /home/malat/debian/sid-root/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
на nvme0n1p2
!
Попробуйте:
Don't chroot, yet!
Try bind mounting with full paths:
sudo mount --rbind "/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231" "/home/malat/debian/sid-root/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231"
Если это удастся,вы можете автоматизировать это без schroot
вне вашего chroot в fstab
с помощью:
/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 /home/malat/debian/sid-root/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 none bind 0 0
Поскольку chroot предотвращает доступ к иерархии файлов «host» -, а вы упомянули, что не изменили /etc/schroot/default/fstab
,bind mount
внутри schroot должен дать сбой. Это потому, что /mnt
не включен в файл schroot fstab. А если бы и был, то уже был бы "смонтирован".
Этот вопрос спровоцировал меня, и я ответил на него 2 часа. Надеюсь это работает. Кстати, я вспомнил о schroot и теперь получил общее представление о монтаже. ;)
ПС Вывод lsblk
в chroot не может быть правильным! В нем говорится, что sda1
, установленный вне chroot под /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
, будет корнем (/ )внутри chroot. Это ложь! Корень chroot — /home/malat/debian/sid-root/
на разделе nvme0n1p2
!