Menjalankan Distro Linux Lain Menggunakan PRoot

PRoot adalah implementasi user-space dari chroot (saya bacanya ceha-rut), mount --bind, dan binfmt_misc.

Dengan proot kita bisa mendapatkan efek seperti chroot, yaitu membuat guest OS yang kita tempatkan misal di directory "~/sembarang" di host OS atau distro linux yang saat ini kita gunakan, mengira bahwa directory tersebut adalah directory "/" (root). Pada dasarnya, kita tidak bisa menjalankan sebuah distro linux, jika kita menempatkannya pada subdirectory. Karena sudah hardcoded, sebagian besar program sudah dikompilasi untuk mengarah ke satu prefix yaitu /usr. Untuk mengubah prefix berarti kita harus membangun distro sendiri yang tidak standar, misal seperti Termux di Android yang memiliki prefix /data/data/com.termux/files/usr.

Berbeda dengan chroot, proot tidak membutuhkan akses root pada host OS. Kita bisa dengan leluasa mengelola apa yang ada di directory guest OS, dengan user non-root pada host OS, asal menempatkan directory tersebut di wilayah yang bisa diakses user, seperti /home/user, dll.

Menggunakan proot atau chroot intinya adalah seperti ini:

Pertama kita harus mengunduh arsip rootfs dari distro lain, lalu ekstrak ke directory manapun yang kita suka, setelah itu kita membuat script yang didalamnya berisi perintah untuk 'login' ke distro lain tersebut. Didalam script itu juga bisa ditambahi perintah untuk binding (bind mount) directory tertentu di host OS untuk dishare ke guest OS seperti /dev, /proc, /sys, untuk bisa mengakses hardware.

Jika ingin mengunduh OS berbasis Debian bisa menggunakan debootstrap. Paket debootstrap sendiri saya yakin tersedia di banyak distro linux. Dengan menggunakan debootstrap, sebuah base system Debian akan ter-install ke directory tujuan. Tidak perlu unduh lalu ekstrak.

Distro linux seperti archlinux menyediakan file khusus untuk kebutuhan ini: https://wiki.archlinux.org/index.php/ Install_Arch_Linux_from_existing_Linux #Method_A:_Using_the_bootstrap_image_ (recommended). Jika memiliki Live CD bisa juga mengambil rootfs dari situ.

Bersambung...

#Linux