Debootstrap & Dchroot

Catatan bagaimana mengkonfigurasi lingkungan chroot dengan menggunakan debootstrap. Kode-kode di bawah diambil dari referensi yang ada disini. Panduan tersebut sebetulnya sudah ada terjemahannya tapi gue sendiri kelupaan padahal dulu sempat juga sih bantu-bantu menerjemahkan panduan itu. hehehehehe. Ya sudah ditulis ulang lagi di blog biar gak lupa lagi besok. :P

Download dan instal paket debootstrap terbaru dari repositori Ubuntu (debootstrap_1.0.0_all.deb saat tulisan ini dibuat):

$ wget http://archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/debootstrap_1.0.0_all.deb
$ sudo dpkg -i debootstrap_1.0.0_all.deb

Install paket dhcroot:

$ sudo apt-get install dchroot

Lalu buat direktori dimana lokasi chroot Anda akan diletakkan (misalnya: /var/chroot) dan jalankan debootstrap untuk menginstal aplikasi-aplikasi dasar yang dibutuhkan (kita akan mencoba mengunakan gutsy):

$ sudo mkdir /var/chroot
$ echo "mychroot /var/chroot" | sudo tee -a /etc/dchroot.conf
$ sudo debootstrap --variant=buildd gutsy /var/chroot/ http://id.archive.ubuntu.com/ubuntu/

Setelah instalasi selesai mari kita beres-beres lingkungan chroot agar dapat digunakan dengan baik:

$ sudo cp /etc/resolv.conf /var/chroot/etc/resolv.conf
$ sudo cp /etc/apt/sources.list /var/chroot/etc/apt/
$ sudo chroot /var/chroot/

Sekarang Anda sudah masuk ke dalam lingkungan chroot, ubah sources.list biar nanti bisa apt-get paket-paket yang ingin diinstal di chroot.

# echo "deb http://id.archive.ubuntu.com/ubuntu gutsy main restricted universe multiverse" > /etc/apt/sources.list
# echo "deb-src http://id.archive.ubuntu.com/ubuntu gutsy main restricted universe multiverse" >> /etc/apt/sources.list
# apt-get update

Silakan instal beberapa paket dasar tambahan untuk menghilangkan warning pada saat melakukan apt-get:

# apt-get install wget debconf devscripts gnupg nano dialog language-pack-en sudo
# exit

Selesai dan Anda sudah berhasil menginstal gutsy di dalam chroot. Ada tambahan lagi denk agar user biasa dapat juga menggunakan chroot. Default-nya kan membutuhkan akses root (sudo) untuk bisa masuk. Jadi mari kita lanjut ke langkah yang berikutnya.

$ sudo cp /etc/passwd /var/chroot/etc/
$ sudo sed "s/\([^:]*\):[^:]*:/\1:*:/" /etc/shadow | sudo tee /var/chroot/etc/shadow
$ sudo cp /etc/group /var/chroot/etc/
$ sudo cp /etc/hosts /var/chroot/etc/

Konfigurasi ulang password untuk user yang akan menggunakan lingkungan chroot tersebut:

$ sudo cp /etc/sudoers /var/chroot/etc/
$ sudo chroot /var/chroot/
# dpkg-reconfigure passwd
# passwd <nama-user>
# exit

Sedikit modifikasi fstab agar direktori home kita saat ini dapat digunakan dalam chroot:

$ sudo vi /etc/fstab

Tambahkan baris berikut ini:

### Isi /etc/fstab untuk dchroot ###
/home           /var/chroot/home        none    bind            0       0
/tmp            /var/chroot/tmp         none    bind            0       0
proc-chroot     /var/chroot/proc        proc    defaults        0       0
devpts-chroot   /var/chroot/dev/pts     devpts  defaults        0       0

Mount ulang seluruh entri fsab:

$ sudo mount -a

Terakhir masuk ke chroot dan atur yang berikut ini:

$ sudo chroot /var/chroot/
# echo mychroot > /etc/debian_chroot
# exit

Dan sekarang untuk bisa masuk ke dalam chroot Anda cukup menjalankan perintah ini saja:

$ dchroot -c mychroot -d

Asik bukan? :-)

  1. wah… ini yang aku cari coz belakangan ini aku mau compile konde gagal teyus eh ternyata harus urusan ma dchroot+dbootstrap.. met liburan om..

  2. Yahh begitulah harus menggunakan clean environment di chroot untuk compile paket-paket BlankOn. Selamat mencoba bos!

  3. inv cari aja versi paling barunya di http://archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/

    Yang di atas kan contoh saja, bukan begitu? hehehe

Stop Me If You Think You've Heard This One Before