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/fstabsid64

$ 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の外で2回目の試みをすると動作します。

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-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/fstabbind mount 以内にschrootが失敗するはずです。/mntschroot fstabに含まれていないからです。それなら「バンドルマウント」されたのです。

この質問は私の関心を呼び起こし、答えに2時間かかりました。私はそれが動作することを願っています。ところで、私はschrootを覚えていましたが、インストールの基本的な理解を得ました。 ;)

PS chroot内の出力はlsblk正確ではありません!sda1chrootの外部にインストールされるのは、/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231chrootの内部のルート(/)になると述べられています。これは偽だ! chrootのルートは/home/malat/debian/sid-root/パーティションにありますnvme0n1p2

おすすめ記事