Di artikel sebelumnya saya sudah bisa menginstall FreeBSD di VPS Jagoan Hosting yang pakai xtermjs sebagai web console-nya. Lalu bagaimana jika menginstall OS BSD lainnya seperti OpenBSD?
Ini agak rumit, karena OpenBSD tidak memiliki mfsBSD atau setara, jadi satu - satunya cara adalah dengan melakukan operasi penimpaan disk dengan image dari OpenBSD dengan dd. Tapi inipun juga akan jadi masalah karena proses instal harus dilanjutkan dengan console sementara akses ke dalam console tidak bisa dilakukan. Xtermjs tidak akan bisa tersambung ke installer OpenBSD.
Saya sudah mencoba, setelah selesai menimpa disk dan membuka xtermjs untuk melanjutkan proses installation, hanya muncul layar hitam/blank saja. Persoalannya sama, xtermjs tidak bisa membaca console output dari OpenBSD.
Emang aneh banget Jagoan Hosting ini pakai xtermjs dibandingkan NoVNC. Apalagi tampilan xtermjs juga ga bagus - bagus banget, font dengan ligature (seperti huruf g, y, j ) tidak bisa dirender dengan baik, termasuk karakter _ tidak akan kelihatan/terbaca.
Jadi bagaimana?
Ya harus merubah boot OpenBSD agar bisa jalan di serial console dan ini artinya harus membedah isi file installer dan merubah pengaturan di boot file. Terdengar komplek dan susah kan? Awokwokwok.
Secara garis besar caranya sebagai berikut:
- Mount file installer OpenBSD (biasanya dalam format
.img), - Edit file
boot.confdan masukkan pengaturan serial console - Umount atau repackaging
tapi masih ada problem lainnya yaitu operasi ini tidak bisa (sulit) untuk dilakukan dari dalam OS Linux (apa saja), masih memungkinkan jika dilakukan di FreeBSD namun paling mudah dilakukan dari dalam OpenBSD sendiri.
Saya akan menunjukkan 2 cara yang semua dilakukan dari BSD, namun sebelum itu mari diunduh dulu bahannya. Disini saya akan pakai file miniroot76.img yang bisa diunduh dari halaman download OpenBSD , karena saya pakai arsitektur 64 bit maka saya pilih miniroot76.img AMD64.
Saya pilih file miniroot76.img karena file ini paling ringan (tidak menyertakan sets yang nantinya bisa diunduh saat proses install).
$ wget https://cdn.openbsd.org/pub/OpenBSD/7.6/amd64/miniroot76.img
Modifikasi dengan OpenBSD #
Dalam hal ini saya mempergunakan OpenBSD yang berjalan dari dalam VM, saya mempergunakan UTM untuk membuat VM OpenBSD. Jika memiliki VirtualBox maka bisa juga dipakai.
OpenBSD menyediakan fungsi vnconfig (8) untuk membuat vnode disk dan kemudian bisa di-mount untuk bisa diakses. Maka dengan ini caranya adalah:
- Buat vnode disk dengan bahan
miniroot76.imgyang sudah diunduh tadi,
$ doas vnconfig -c vnd0 miniroot76.img
vnd0 adalah nama disk yang dibuat dengan vnconfig
Opsi -c sudah tidak tersedia di vnconfig yang terbaru, jadi silakan hapus hasilnya akan sama saja
- Kemudian mount
vnd0agar bisa diakses
$ doas mount /dev/vnd0a /mnt
Partisi yang di mount adalah partisi pertama (paling atas), maka perlu menambahkan penanda a setelah disk. Sedangkan untuk partisi kedua dan selanjutnya ditandai dengan b c d
- Edit file
boot.confagar bisa membaca serial console, (jika fileboot.conftidak ada bisa dibuat dengan manual)
$ doas mkdir /mnt/etc
$ doas echo "set tty com0" > /mnt/etc/boot.conf
- Umount disk dan hapus vnode disk
$ doas umount /dev/vnd0a
$ doas vnconfig -u vnd0a
Sampai disini maka file miniroot76.img sudah bisa ditimpakan ke disk dan di-install. Jangan lupa sebelum dd, matikan dulu proteksi systemd kepada disk.
Saya sudah membuat image miniroot76.img yang sudah memakai serial console. Kamu bisa mengunduhnya disini
Tapi ingat do it at your own risk. Selalu lakukan backup sebelum menginstall ini
Modifikasi dengan FreeBSD #
Jika di OpenBSD ada vnconfig, maka di FreeBSD ada mdconfig(8) yang bisa dipakai. Caranya sebagai berikut:
- Cek apakah vnode disk sudah dibuat dan buat vnode disk baru,
$ doas mdconfig -l
$ doas mdconfig -a -t vnode -f miniroot76.img
md0
proses pembuatan vnode disk menghasilkan disk baru dengan nama md0.
- Periksa daftar partisi yang ada di dalam
md0
$ doas gpart show md0
=> 1 11391 md0 MBR (5.6M)
1 63 - free - (32K)
64 960 1 efi (480K)
1024 10368 4 !166 [active] (5.1M)
tersebut ada 1 partisi dan 2 slices, yang pertama adalah efi (tidak perlu utak atik yang ini) dan yang kedua adalah slice 4 lokasi boot file.
- Mount slice 4 dan buat file
boot.conf
$ doas mount /dev/md0s4 /mnt
$ cd /mnt
$ doas mkdir etc
$ doas echo "set tty com0" > etc/boot.conf
- Umount
md0dan selesai
$ doas umount /dev/md0s4
$ doas mdconfig -d -u md0
Sampai disini maka file miniroot76.img sudah bisa ditimpakan ke disk dan di-install.
Cukup mudah bukan?
Jika tidak maka bisa kok build ISO images sendiri di lokal atau di VPS dengan OS Linux kemudian install di VPS dengan Qemu. Caranya?
Clone repository openbsd-cloud-image kemudian tuju folder custom dan rubah isi dari file install.conf, selanjutnya tinggal jalankan di konsol perintah sebagai berikut (saya pakai yang partisi minimalis saja).
`./build_openbsd_qcow2.sh -r '7.6 --image-file 'openbsd-min.qcow2' --size '20' --disklabel 'custom/disklabel.cloud' --sets '-game*.tgz -x*.tgz' --allow_root_ssh 'no' -b`
perintah ini akan membuat sebuah file .qcow2dengan ukuran disk 20GiB (sesuaikan dengan ukuran disk di VPS) yang bisa ditulis ke disk dengan bantuan qemu-tools.
$ qemu-img convert -f qcow2 -O raw openbsd-min.qcow2 openbsd-min.raw
$ doas dd if=openbsd-min.raw of=/dev/sda bs=4M status=progress
$ sync
Kemudian reboot dan bisa langsung kebuka menu login OpenBSD. Login dengan username dan password yang sudah diatur di file install.conf sebelumnya.
Bingung? silakan sampaikan pertanyaan ke poes@egois.org di fediverse.
Penutup #
Cara diatas adalah beberapa cara untuk menginstall OpenBSD di VPS berbasis Linux, sebenarnya sangat mudah asal provider memakai NoVNC untuk konsolnya, yang menjadi masalah sebenarnya adalah pemakaian xtermjs.
Jika tidak mau repot, saran saya sebaiknya hindari VPS yang memakai xtermjs. Kalaupun terpaksa minta saja bantuan support untuk meng-install-kan OS yang diinginan (jika support mau).
Tapi intinya adalah mau kondisi apa saja, jangan sampai menghalangi kita untuk memakai OS yang kita inginkan. Kalo memang sudah mentok, ganti provider saja. :)
Provider lokal yang saya rekomendasikan Neva Cloud dan Ide.id sudah tidak aktif lagi.
Terakhir, file miniroot76.img yang sudah dirubah boot console-nya tidak bisa dipakai di NoVNC, untuk NoVNC langsung unduh aja file asli dari OpenBSD.
