我可以访问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如何在我的schroot (这是我的数据所在的主磁盘)下自动挂载/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231?
到目前为止,我尝试了一个天真的:
$ 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 !发布于 2020-03-05 09:52:07
因此,解决方案只是正确地读取我的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发布于 2020-03-04 19:21:18
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的正确配置如下所示:
/dev/disk/by-uuid/dbc64c37-340a-49e5-8184-a69e01e5e231 /mnt/dbc64c37-340a-49e5-8184-a69e01e5e231 ext4 rw,nosuid,nodev,relatime,x-gvfs-show 0 0You不这样做-除非您在chroot之外卸载sda1!实际上,如果可能的话,您将双倍挂载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树没有分区!那么为什么挂载声明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 on 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的情况下在fstab中的chroot之外自动执行以下操作:
/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 <#>应该会失败。这是因为/mnt没有包含在schroot中。如果是的话,它就已经是“装订式的”了。
这个问题激怒了我,花了我两小时才回答。我希望它能成功。顺便说一句,我已经记住了施罗德的事,现在我对安装有了一个基本的了解。;)
PS,lsblk的输出在色度内是不正确的!它指出,安装在/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231下的chroot外部的D26将是chroot中的根(/)。这是假的!chroot的根是分区/home/malat/debian/sid-root/上的nvme0n1p2!
https://unix.stackexchange.com/questions/570005
复制相似问题