There’s a significant difference between arch-chroot and chroot that’s important to understand when working with Arch Linux installations.
arch-chroot /mnt
This is a wrapper script provided by the Arch installation ISO that does much more than just chroot. It’s the preferred method during Arch Linux installation.
What it does automatically:
- Mounts important filesystems (
/proc,/sys,/dev,/dev/pts,/run) - Copies DNS configuration (
/etc/resolv.conf) so networking works - Sets up the chroot environment properly
- Uses bash by default (ignoring the shell specified in
/etc/passwd)
Usage:
arch-chroot /mnt
Use this during Arch installation - it’s designed specifically for this purpose and handles all the tedious setup work for you.
chroot /mnt
This is the basic chroot command that just changes the root directory. It’s minimal and requires manual configuration.
What it does:
- Only changes the root filesystem
- Doesn’t mount anything automatically
- Uses whatever shell is specified in
/etc/passwdfor the root user - Requires you to manually set up the environment
Manual setup required:
To use basic chroot properly, you’d need to do all the setup manually:
mount --bind /dev /mnt/dev
mount --bind /dev/pts /mnt/dev/pts
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt /bin/bash
Summary
For Arch Linux installation and most use cases, always use arch-chroot. It’s a time-saver that ensures your chroot environment is properly configured with all necessary mounts and networking capabilities. Only use the basic chroot command if you specifically need fine-grained control over the environment setup or are working on a non-Arch system.