web-dev-qa-db-ja.com

chrootからネットワークに到達できません

複雑なシナリオがあり、複雑な部分のほとんどが機能しています:

  • SDカードには、LUKS/BTRFSファイルシステムにFedora 23 Raspberry Piがインストールされています。
  • Fedora 23 x86-64 VM RPi用のFedoraのSDカードインストールの管理に使用されています。
    • VMにSDカードをマウントして、QEMU ARMの静的ビルドを使用してchrootすることができます。これは、何らかの理由で入手が非常に困難でした。

しかし、chroot内ではネットワークにアクセスできません。 Ubuntu/Debianで同様のことをしたときは、いつでもネットワークにアクセスできます。 SELinux :(を無効にし、一般に機能するようにバインドマウントをたくさん行いましたが、ネットワークにアクセスできません。私は/etc/sysconfig/network-scripts/ifcfg-enp0s3をコピーして、他に考えられるすべてのものを試しました。

私のchrootセットアップは次のようになります。

cryptsetup luksOpen /dev/sdXN picrypt
mount -t btrfs /dev/mapper/picrypt /mnt
mount -t proc none /mnt/proc
mount -t sysfs none /mnt/sys
mount --bind /dev /mnt/dev
mount --bind /dev/pts /mnt/dev/pts
mount --bind /run /mnt/run
chroot /mnt/

私のホストの観点からはもっと多くのファイルシステムがマウントされていることに気づきましたが、それらは自動的に引き継がれ、何らかの理由でchrootに表示されないことを想定しています。これが私のホストが知っているマウントです:

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=2013260k,nr_inodes=503315,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime,seclabel)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/Fedora-root on / type ext4 (rw,relatime,seclabel,data=ordered)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=22,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
tmpfs on /tmp type tmpfs (rw,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime,seclabel)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
/dev/sda1 on /boot type ext4 (rw,relatime,seclabel,data=ordered)
/dev/mapper/Fedora-home on /home type ext4 (rw,relatime,seclabel,data=ordered)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
tmpfs on /run/user/42 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=404748k,mode=700,uid=42,gid=42)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=404748k,mode=700,uid=1000,gid=1000)
gvfsd-Fuse on /run/user/1000/gvfs type Fuse.gvfsd-Fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
/dev/sr0 on /run/media/naftuli/VBOXADDITIONS_5.0.20_106931 type iso9660 (ro,nosuid,nodev,relatime,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500,uhelper=udisks2)
/dev/sdXN on /run/media/naftuli/PI-BOOT type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
tmpfs on /home/naftuli/tmp type tmpfs (rw,relatime,seclabel,mode=700,uid=1000,gid=1000)

私のchrootはlot以下について知っています:

/dev/mapper/picrypt on / type btrfs (rw,relatime,seclabel,compress=lzo,space_cache,subvolid=5,subvol=/)
none on /proc type proc (rw,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=2013260k,nr_inodes=503315,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
sysfs on /sys type sysfs (ro,relatime,seclabel)

ネットワーキングをサポートして機能するchrootを取得するには、それらの/sysサブファイルシステムのallを実際にchrootにマウントする必要がありますか?

6
Naftuli Kay

Chrootセッションのネットワークをセットアップするには、DNS構成をchroot環境にコピーする必要があります。

cp /etc/resolv.conf /mnt/etc/resolv.conf

または

ln -s /etc/resolv.conf /mnt/etc/resolv.conf
19
GAD3R

プロキシの背後にいる場合は、プロキシ設定をchroot環境にコピーする必要もあります。

Sudo cp /etc/apt/apt.conf /path/to/chroot/etc/apt/apt.conf

/etc/apt/apt.confは次のようになります

Acquire::http::proxy "http://192.168.120.100:80/";
Acquire::https::proxy "https://192.168.120.100:80/";
Acquire::ftp::proxy "ftp://192.168.120.100:80/";
1
qutab

今日Ubuntu 18.04.1で作業しているので、次のものを使用する必要があります。

Sudo rsync -avh --devices --specials /run/systemd/resolve /target/run/systemd 

chrootでネット接続を機能させるため。

進化する更新プロセスで変更される可能性があるため、解決ディレクトリがchrootソースとターゲットの同じ場所にあるかどうかを確認する必要があります。私の場合、数週間分の更新がありません:

ソース:VERSION = "18.04.2 LTS(Bionic Beaver)"

ターゲット:VERSION = "18.04.1 LTS(Bionic Beaver)"

0
prometheos