Debootstrapping Debian Sid

Ketika itu, tiada angin ataupun hujan, tiba-tiba laptop yang sedang dipakai ini mendadak mati. Bergumam dalam hati; wow, what the eff is this? Mulanya khawatir jika terjadi kerusakan pada hardware, namun ketika dihidupkan ulang ternyata ia bisa booting dan masuk desktop secara normal. Syukurlah.

Yeah, sepertinya ini masalah sistem operasi. FYI, Debian Sid yang kini dipakai adalah yang dahulu saya pasang dan tuliskan di artikel Debootstrapped Install Debian Sid di ThinkPad T520. Selama dipakai ia mengalami banyak pasang-hapus software, dan terutama pergantian desktop environment. Saya tekankan pada pergantian DE berdasar dugaan mungkin tiap DE meninggalkan sampah ketika ia dilepas dan menimbulkan konflik dengan DE lainnya yang kemudian dipasang. Who knows?
Jadilah diniatkan untuk memasang kembali sistem Debian yang anyar agar terbebas dari sampah-sampah bekas dahulu saya mencoba-coba.

Artikel blog di atas saya rasa mencukupi untuk melepaskan keingintahuan Anda mengenai proses memasang sistem Debian dengan menggunakan bantuan debootstrap. Untuk kali ini saya tidak akan bersusah-payah memasang dan melakukan optimasi melainkan hanya memasang sistem Sid dan kemudian memakainya saja.
I have a relatively beefy machine anyway, optimasi sistem Linux yang biasa diikuti kadang hanya menghabiskan waktu namun hasilnya tidak sangat terasa.

Ada banyak skenario untuk memasang sistem Debian menggunakan debootstrap, namun berikutlah yang saya pakai: (1) menggunakan debootstrap untuk membuat sistem Debian di partisi lain, (2) reboot ke live environment menggunakan ISO distro Linux lain, dan (3) format partisi Debian lama dan kemudian menyalin isi sistem Debian hasil debootstrap ke partisi baru.
Akan lebih cepat jika saya boot ke live environment, memasang paket debootstrap dan debootstrapping ke partisi lama. But, whatever….

Langkah pertama tentu saja memasang paket debootstrap. Debian sebenarnya memiliki juga paket cdebootstrap yang berfungsi sama namun lebih gegas karena ditulis menggunakan bahasa C. Namun karena saya hanya ingat debootstrap, jadi ialah yang akhirnya dipasang.

sudo apt install debootstrap

Langkah kedua adalah menggunakan debootstrap yang tadi dipasang untuk membuat sistem Debian anyar.

sudo debootstrap --variant=buildd --cache-dir=/var/cache/apt/archives unstable sid http://kartolo.sby.datautama.net.id/debian

Parameter --variant=buildd saya pakai agar paket build-essential dan fakechroot sudah terpasang pada sistem yang baru dibangun. Sebenarnya ada juga pilihan --include untuk sekaligus memasang paket-paket yang diinginkan, namun entah mengapa sistem yang dibangun dengan opsi ini selalu membaca root disk secara read only.

Parameter --cache-dir=/var/cache/apt/archives dimaksudkan agar debootstrap menggunakan paket-paket yang ada dalam direktori ini, dan jika perlu untuk mengunduh dari internet, maka ia akan mengunduh dan menyimpannya juga di sini. Harap maklum, saya termasuk golongan fakir bandwidth jadi sebisa mungkin mengurangi lalu-lintas data dari dan ke internet.

Ringkasnya, perintah di atas akan membuat sistem Debian unstable ke dalam direktori sid dengan mengambil paket dari http://kartolo.sby.datautama.net.id. Saya gunakan nama unstable dan sid demi kejelasan tutor ini karena sebenarnya kita bisa saja menggunakan sid sebagai nama suite yang akan dipasang.

Langkah ketiga adalah memasang komponen-komponen yang diperlukan untuk menjadikan sistem baru ini bootable. Misal kernel, bootloader, Xorg dan desktop environment.
Untuk melakukan pekerjaan ini, kita perlu berpindah root (chroot, change root). Dan agar sistem chroot awas dan terhubung dengan perangkat keras komputer, maka terlebih dahulu kita mesti mengaitkan virtual system pada sistem host (sistem yang kini sedang dipakai) dengan sistem hasil debootstrap.

sudo mount --bind /dev sid/dev
sudo mount -t devpts /dev/pts sid/dev/pts
sudo mount -t proc /proc sid/proc
sudo mount -t sysfs /sys sid/sys

Dan agar bisa terhubung ke internet menggunakan sambungan internet host;

sudo mount --bind /etc/resolv.conf sid/etc/resolv.conf

Saatnya untuk berpindah root.

sudo LANG=C chroot sid /bin/bash

Langkah keempat adalah memasang komponen-komponen utama sistem operasi. Paling awal kita pasang paket untuk memudahkan saya yang awam ini menyunting paket, dan paket lainnya. Misal saya pilih aptitude karena lebih menyukainya dibanding apt. Sementara apt-listbugs adalah sangat penting bagi pengguna Sid agar awas akan paket-paket yang bermasalah.

apt install nano dialog aptitude apt-listbugs

Buat password untuk root.

passwd

Buat juga akun untuk kita sendiri, misal saya menggunakan iza.

adduser iza

Dan ikuti wisaya yang kemudian muncul.

debootstrap akan otomatis membuatkan berkas /etc/hostname sama dengan /etc/hostname host. Jika perlu untuk memberi nama yang lain, misal sid:

echo sid > /etc/hostname

Sunting sources.list untuk menambahkan suite contrib dan non-free.

apt edit-sources

Hingga hasilnya akan seperti ini.

deb http://kartolo.sby.datautama.net.id/debian sid main contrib non-free

Mutakhirkan sistem.

apt update

Pasang kernel.

aptitude install linux-image-amd64 grub-pc

Karena sistem ini tidak langsung dipasang pada sebuah partisi maka pastikan agar grub-pc tidak dipasang pada MBR ataupun boot sector partisi.

Langkah berikutnya adalah memasang komponen desktop. Jika dahulu saya rela bersusah payah demi mendapat sistem yang ramping, kini yang penting desktop-nya segera tersedia dan berjalan lancar. Untuk itu kita gunakan saja cara yang digunakan oleh Debian installer, yakni menggunakan tasksel.

aptitude install tasksel

Setelah terpasang, kita pasang gunakan tasksel untuk memasang dekstop environment dan semua yang dibutuhkannya.

tasksel --new-install

┌────────────────────────────────────┤ Software selection ├───────────────────────────────────┐
│ At the moment, only the core of the system is installed. To tune the system to your needs, you can   │
│ choose to install one or more of the following predefined collections of software.                   │
│                                                                                                      │
│ Choose software to install:                                                                          │
│                                                                                                      │
│    [*] Debian desktop environment                                                                    │
│    [ ] ... GNOME                                                                                     │
│    [ ] ... Xfce                                                                                      │
│    [ ] ... KDE Plasma                                                                                │
│    [ ] ... Cinnamon                                                                                  │
│    [ ] ... MATE                                                                                      │
│    [ ] ... LXDE                                                                                      │
│    [ ] ... LXQt                                                                                      │
│    [ ] web server                                                                                    │
│    [*] print server                                                                                  │
│    [ ] SSH server                                                                                    │
│    [*] standard system utilities                                                                     │
│                                                                                                      │
│                                                                                                      │
│                             <Ok>                                 <Cancel>                            │
│                                                                                                      │
└───────────────────────────────────────────────────────────────────────────────────────────┘

Gunakan tombol panah atas dan bawah pada keyboard untuk menggeser pilihan, dan tombol spasi untuk memilih pilihan. Pakai TAB untuk memilih <Ok> kemudian tekan ENTER untuk memulai pemasangan.
Saya sendiri kali ini memilih untuk memasang MATE.

Tunggu beberapa saat tergantung seberapa banyak paket yang mesti diambil dari internet, dan tentunya tergantung pula koneksi internet yang dipakai.

That’s it. Saatnya untuk memasang sistem baru hasil debootstrap ini ke partisinya sendiri.
Karena saya tidak memiliki sistem Linux lain, akhirnya memilih untuk boot ISO Linux Mint untuk melakukannya.

Setelah kita masuk ke desktop live, saatnya untuk menghapus partisi lama (formatting), memasang bootloader (saya menggunakan GRUB 2) dan menyesuaikan fstab.
Misal partisi yang akan digunakan untuk sistem baru adalah /dev/sda1, kita akan format menjadi partisi EXT4 dan berlabel Sid.

mkfs.ext4 -L Sid /dev/sda1

Untuk memasang GRUB kita perlu mengaitkan sistem host agar GRUB awas akan susunan partisi yang ada dalam diska komputer. Ikuti langkah mengaitkan sistem host dan chroot sebagaimana dijabarkan di atas.

Setelah berpindah root, pasang GRUB, misalnya pada /dev/sda.

grub-install /dev/sda

Mutakhirkan grub.cfg agar terisi oleh sistem operasi yang terdapat dalam diska.

update-grub

Sunting /etc/fstab sesuai dengan UUID partisi yang dipakai. Misal partisi yang digunakan untuk rootdir adalah /dev/sda1.

blkid /dev/sda1 > /etc/fstab

Gunakan penyunting teks, misalnya nano, untuk menyunting /etc/fstab dari yang semula seperti berikut:

/dev/sda1: LABEL="Sid" UUID="5799f552-62a7-4b2e-ac9f-c75f7726fc3a" TYPE="ext4" PARTUUID="f0cb3ab9-01"

Menjadi seperti ini:

UUID=5799f552-62a7-4b2e-ac9f-c75f7726fc3a	/				ext4		rw,noatime,defaults				0 0

Demikianlah. Sistem Debian anyar telah terpasang dan siap untuk booted.
Catatan di atas adalah apa yang masih teringat di kepala, mungkin ada beberapa detil yang terlewat. Semoga bermanfaat.