Автоматическое монтирование /dev/sda1 под schroot

Я могу себе представить одно решение, которое я попытаюсь протестировать позже, — это использование переменных окружения systemd или среды выполнения systemd , и пусть ваш сценарий пароля offlineIMAP повторяет переменную окружения, которая пароль. Вы также можете попробовать использовать клиентские сертификаты

.

-1
05.03.2020, 11:42
2 ответа

Таким образом, решение состояло в том, чтобы просто правильно прочитать мой конфигурационный файл 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
28.04.2021, 23:22
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!

2
28.04.2021, 23:22

Теги

Похожие вопросы