— sekitar 5 menit membaca

Menginstall OpenBSD di VPS berbasis Linux

Provider tidak menyediakan OS OpenBSD dan atau ingin menginstall sendiri?

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:

  1. Mount file installer OpenBSD (biasanya dalam format .img),
  2. Edit file boot.conf dan masukkan pengaturan serial console
  3. 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:

  1. 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

  1. Kemudian mount vnd0 agar 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

  1. Edit file boot.conf agar bisa membaca serial console, (jika file boot.conf tidak ada bisa dibuat dengan manual)
$ doas mkdir /mnt/etc
$ doas echo "set tty com0" > /mnt/etc/boot.conf
  1. 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:

  1. 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.

  1. 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.

  1. 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
  1. Umount md0 dan 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.


Artikel terkait #openbsd

Wireguard di OpenBSD

Catatan ane tentang memasang Wireguard di OpenBSD, yang katanya mudah tapi cukup bikin pusing juga

Menginstall OpenBSD di VPS berbasis Linux

Provider tidak menyediakan OS OpenBSD dan atau ingin menginstall sendiri?


kembali ke atas