次のように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
た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
こんなことしないで- sda1
chrootの外から削除しない限り!実際には二重設置になります。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-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は「ホスト」ファイル階層へのアクセスをブロックし、変更がないと述べたので/etc/schroot/default/fstab
、bind mount
以内にschrootが失敗するはずです。/mnt
schroot fstabに含まれていないからです。それなら「バンドルマウント」されたのです。
この質問は私の関心を呼び起こし、答えに2時間かかりました。私はそれが動作することを願っています。ところで、私はschrootを覚えていましたが、インストールの基本的な理解を得ました。 ;)
PS chroot内の出力はlsblk
正確ではありません!sda1
chrootの外部にインストールされるのは、/mnt/dbc64c37-340a-49e5-8184-a69e01e5e231
chrootの内部のルート(/)になると述べられています。これは偽だ! 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