このブログはURLが変更になりました

新しいブログはこちら→ https://matsuu.hatenablog.com/

chrootする際には/procと/devだけでなく/sysもmountしよう

既にクリスマスになってますが、これはGentoo Advent Calendarの4日目です。ひでぇな俺。

Gentooのインストール中にchrootして実環境を構築するフェーズで、/devと/procをマウントする手順がHandbookで紹介されています。

mount -o bind /dev /mnt/gentoo/dev
mount -t proc none /mnt/gentoo/proc
chroot /mnt/gentoo /bin/bash

そういう場合は/sysもマウントしてやるといいと思います。

mount -o bind /dev /mnt/gentoo/dev
mount -t proc none /mnt/gentoo/proc
mount -o bind /sys /mnt/gentoo/sys
chroot /mnt/gentoo /bin/bash

さらにいえば、bindだけだと/dev/や/sys/配下にサブマウントされたファイルシステムはマウントされないので、--rbindでマウントしましょう。

mount --rbind /dev /mnt/gentoo/dev
mount -t proc none /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
chroot /mnt/gentoo /bin/bash

ただし、--rbindでマウントした場合は素直にumountできません。

# umount /mnt/gentoo/dev
umount: /mnt/gentoo/dev: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

その場合は-lオプションでlazy unmountを使うとアンマウントできます。

# umount -l /mnt/gentoo/dev
# umount /mnt/gentoo/proc
# umount -l /mnt/gentoo/sys