Installation Chroot

From ArchWiki
Revision as of 07:33, 15 August 2011 by Igorpopov (Talk | contribs) (improved a bit the English of the article)

Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.

Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

This article will detail the installation of Arch Linux from another GNU/Linux (kernel >= 2.6.27) with a chroot.

This article was originally published in the wiki. A script doing all the steps described in this page is available at:
It is recommended to read the article.


To install ArchLinux you need some data :

Variable Description Example
install_path You have to mount in this directory all the partitions that will be part of your system /mnt/newarch
arch Architecture of the system: (we can only install i686 from a i686 system) i686 or x86_64
mirror Miror of download: the list is available here
pacman_mirrorlist_ver Actual version of pacman-mirrorlist, see here. 20110703-1

You also need a minimal chroot. You can find an archive matching your achitecture here.

You can export variable with this command, for example :

export install_path="/mnt/newarch"
Warning: This method works only to install a system with the same architecture as the host system or to install a 32 bits system with a 64 bits host system.

Before we begin, we will crete the Template:Filename directory in the new architecture in order to put it temporary files. In Template:Codeline:

mkdir tmp
chmod 1777 tmp

Base system creation

We need to download the archive and the package Template:Filename:

cd "$install_path"/tmp
wget "$mirror/core/os/$arch/pacman-mirrorlist-$pacman_mirrorlist_ver-any.pkg.tar.gz"
wget "$arch.tgz"
cd ..
tar zxvf tmp/pacman-mirrorlist-$pacman_mirrorlist_ver-any.pkg.tar.gz
tar zxvf tmp/archlinux.chroot.$arch.tgz

The mirror configuration file (Template:Filename) have all its lines commented, you have to uncomment at least one line, for example :

Server =$repo/os/$arch

Chroot preparation

The network

In order to have dns resolution, copy your Template:Codeline from the host system to the chroot :

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

Mount special file

We need to mount the special file system Template:Filename, Template:Filename and Template:Filename :

mount -o bind /proc "$install_path"/proc
mount -o bind /dev "$install_path"/dev
mount -o bind /sys "$install_path"/sys

Register the mount partitions

Mount partition are list in Template:Filename, we need to copy it contents :

grep -v rootfs /proc/mounts > etc/mtab

In the chroot

The chroot is ready, enter it :

chroot "$install_path" /bin/bash

Base system installation

pacman -Syf base

Configure the new system

Configure /etc/rc.conf

One of the central file in the ArchLinux system. You'll find everything you need here.

Configure partitions

You have to fill the Template:Filename. This file list the partition that will be use by your new system. Your file must look like this :

# /etc/fstab: static file system information
# <file system>    <dir>         <type>    <options>          <dump> <pass>
devpts             /dev/pts      devpts    defaults            0      0
shm                /dev/shm      tmpfs     nodev,nosuid        0      0

/dev/sda5          swap          swap      defaults            0      0
/dev/sda6          /             ext4      defaults            0      1
/dev/sda7          /home         ext4      defaults            0      2

Be carefull to check the existenve of the mount point. Additionnal information can be found here


Perhaps you'll need GRUB now. You'll find information here


Root password

The root password is empty by default, you may want to set one :

passwd root

Main user

A basic configuration is :

useradd -G wheel,audio,optical,storage,video,power -m nom_utilisateur
passwd nom_utilisateur

You'll find more information here

sudo configuration

See here.