schroot 아래에 /dev/sda1을 자동으로 마운트합니다.

schroot 아래에 /dev/sda1을 자동으로 마운트합니다.

다음과 같이 Ubuntu 시스템에 액세스할 수 있습니다.

$ 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 /boot/efi
└─nvme0n1p2 259:2    0 372.5G  0 part /

나는 다음과 같이 Debian/sid schroot를 설정했습니다:

$ cat /etc/schroot/chroot.d/sid64 
[sid64]
description=Contains the SPICE program
aliases=sid
type=directory
directory=/home/malat/schroots/sid-root
users=malat
root-groups=root
profile=desktop
personality=linux
preserve-environment=true

나는 어떤 변경도 하지 않았 /etc/schroot/default/fstab으며 내 schroot에 들어갈 때 sid64내가 보는 것은 다음과 같습니다.

$ 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
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

수동으로 수행하는 경우:

$ sudo mount /dev/sda1 /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
$ 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/bdc64c37-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

/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231내 schroot(내 데이터가 있는 기본 디스크) 아래에 자동으로 마운트하려면 어떻게 해야 합니까 ?


지금까지 나는 순진한 시도를 했습니다.

$ sudo mkdir /home/malat/schroots/sid-root/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
$ tail -1 /etc/schroot/default/fstab 
/dev/disk/by-uuid/dbc64c37-340a-49e5-8184-a69e01e5e231 /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 none rw,bind 0 0
$ schroot -c sid
(sid64)$ ls -al /dev/disk/by-uuid/dbc64c37-340a-49e5-8184-a69e01e5e231
lrwxrwxrwx 1 root root 10 Jan  8 01:00 /dev/disk/by-uuid/dbc64c37-340a-49e5-8184-a69e01e5e231 -> ../../sda1

또한:

$ tail -1 /etc/schroot/default/fstab
/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 none    rw,bind 0 0

둘 다 나에게 적합하지 않습니다.


나는 또한 순진한 시도를 했습니다.

$ sudo mount --rbind /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 /home/malat/schroots/sid-root/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
$ mount | grep dbc64c37
/dev/sda1 on /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 type ext4 (rw,nosuid,nodev,relatime,x-gvfs-show)
/dev/sda1 on /home/malat/schroots/sid-root/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 type ext4 (rw,nosuid,nodev,relatime)
$ schroot -c sid
(sid64)$ ls -al /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
-> empty !

답변1

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

파티션은 바인드 마운트되지 않으며 이미 마운트된 디렉토리와 파일도 마찬가지입니다. chroot의 올바른 구성 /etc/fstab은 다음과 같습니다.

 /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

넌 이러지 마- sda1chroot 외부에서 제거하지 않는 한! 실제로는 이중 설치가 됩니다.sda1 두 배그리고 이로 인해 금융 서비스가 중단됩니다(가능한 경우).

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-a69e01e5e231nvme0n1p2!

노력하다:

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"

성공하면 schrootchroot를 사용하지 않고도 자동으로 이 작업을 수행 할 수 있습니다 fstab.

/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 /home/malat/debian/sid-root/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 none bind 0 0

chroot는 "호스트" 파일 계층에 대한 액세스를 차단하고 변경 사항이 없다고 언급했으므로 /etc/schroot/default/fstab,bind mount 이내에schroot가 실패해야 합니다. /mntschroot fstab에 포함되어 있지 않기 때문입니다 . 그렇다면 "번들 마운트"된 것입니다.

이 질문은 나의 관심을 불러일으켰고 답변하는 데 2시간이 걸렸습니다. 나는 그것이 작동하기를 바랍니다. 그런데 저는 schroot를 외웠고 이제 설치에 대한 기본적인 이해를 갖게 되었습니다. ;)

PS chroot 내의 출력은 lsblk정확할 수 없습니다! sda1chroot 외부에 설치되는 것은 /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231chroot 내부의 루트(/)가 될 것이라고 명시되어 있습니다 . 이건 가짜 야! chroot의 루트는 /home/malat/debian/sid-root/파티션에 있습니다 nvme0n1p2!

답변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

관련 정보