Instalasi Slackware Di Mesin UEFI

Submitted by w41lf0x on Fri, 02/28/2014 - 15:59

slackwareMendadak dipinjami mesin yang lumayan baru dan benar-benar berat. Tetapi meskipun berat, mesin sangat kuat untuk komputasi. Daripada mesin ini berkarat dan menjadi tidak berguna, saya coba instalasi #Slackware ke dalamnya. Toh mesin ini juga tidak dilengkapi OS dari pabriknya saat saya terima. Pingin tahu bentuknya? Seperti inilah kira-kira penampakannya:

Dell Precision M6800

Dell Precision M6800 (http://www.dell.com/us/business/p/precision-m6800-workstation/pd)

Mesin tersebut dilengkapi dengan #UEFI yang umum dikenal sebagai pengganti BIOS. Sudah ada banyak cerita tentang suka duka UEFI. Mulai dari tidak dapat mem-boot OS hingga membuat mesin rusak. Yah namanya juga perangkat baru, meskipun tidak baru sekali karena mesin-mesin Mac sudah lebih dahulu menggunakan sistem seperti ini. Saya sendiri sering membaca artikel blog atau pertanyaan dan jawaban di forum-forum tentang betapa mengerikannya makhluk bernama UEFI ini. Jadi begitu mendapatkan sebuah mesin UEFI, saya ingin membuktikan klaim orang-orang tersebut.

Yang harus diketahui tentang UEFI adalah, UEFI sebenarnya bukanlah BIOS. Perilaku UEFI berbeda jauh dengan BIOS yang sudah-sudah. Jika BIOS menyediakan akses ke perangkat-perangkat yang ada di dalam komputer, maka UEFI lebih pada menyediakan layanan penghubung dari OS ke perangkat sesuai permintaan OS. Jadi UEFI tidak membuka akses ke semua perangkat hingga OS memintanya. Beberapa OS bahkan dapat memasukkan firmware driver ke partisi berlabel EFI untuk kemudian dimuat oleh UEFI sebelum OS di-boot. Sehingga saat OS di-boot, perangkat-perangkat yang dimuat firmware-nya, sudah siap digunakan oleh OS tanpa perlu inisialisasi lagi.

Baiklah. Saya sudah menyebutkan soal partisi EFI. Di sinilah kunci boot UEFI sebenarnya. UEFI tidak menyediakan fitur untuk mem-boot sebuah boot block layaknya BIOS. Karena UEFI didesain untuk bekerja pada mesin dengan ruang simpan yang besar di mana lokasi boot block dapat berada di atas klaster 2GB. Mem-boot sebuah boot block di atas 2GB jelasnya akan memakan waktu dan biasanya jarang berhasil. Tetapi jika OS memiliki sebuah boot loader, maka mapping boot block tersebut dapat dilakukan dengan mudah. Oleh karena itu UEFI menyediakan fasilitas untuk menjalankan boot loader OS yang dirupakan dalam bentuk firmware. Sebuah OS dalam harddisk juga dapat kita nonaktifkan dari daftar boot menggunakan UEFI dengan menghapus boot loader OS dari daftar firmware boot meskipun firmware-nya ada di dalam partisi EFI.

Saya menggunakan OS Slackware64 versi 14.1 dalam kasus ini yang kebetulan entah mengapa jika installer Slackware dijalankan dalam modus UEFI, akses keyboard jadi bermasalah. Saya tidak dapat menggunakan keyboard untuk memasukkan karakter yang saya inginkan. Sepertinya ada masalah dalam proses pemetaan tom. Sayangnya saya belum melaporkan hal ini ke LQ :-P . Jadi mau tidak mau saya harus memasang Slackware dalam modus Legacy BIOS supaya saya bisa mengetik password saya dengan benar. Dalam modus BIOS, instalasi berjalan lancar tanpa masalah.

Jadi permasalahan saya berikutnya adalah: "Bagaimana cara menempatkan boot loader untuk OS Slackware saya ke partisi EFI?"

Yang harus saya lakukan adalah saya harus membuat sebuah partisi berukuran 512MB bertipe EF00 dan berlabel EFI, lalu saya format sebagai FAT32. Ukuran, tipe, label dan format filesystem partisi ini adalah sebuah keharusan. Silakan lihat spesifikasi UEFI untuk keterangan lebih lanjut. Kira-kira seperti inilah struktur partisi komputer ini sekarang:

root@ictm68:~# gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.7

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 1465149168 sectors, 698.6 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 85A04181-AEA9-4A04-950B-653201DC265E
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1465149134
Partitions will be aligned on 8-sector boundaries
Total free space is 6 sectors (3.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              40            4135   2.0 MiB     EF02  BIOSBOOT
   2            4136       209719335   100.0 GiB   0700  WINDOWS
   3       209719336       209981479   128.0 MiB   8300  SLACKBOOT
   4       209981480       314839079   50.0 GiB    8300  SLACKROOT
   5       314839080       331616295   8.0 GiB     8200  SWAP
   6       331616296       332664871   512.0 MiB   EF00  EFI
   7       332664872      1465149134   540.0 GiB   8300  DATA

Setelah itu saya mount partisi tersebut ke direktori /boot/efi:

mkdir -p /boot/efi
mount /dev/sda6 /boot/efi

Kemudian saya membuat direktori untuk lokasi firmware grub:

mkdir -p /boot/efi/EFI/grub

Lalu saya membuat firmware grub dan saya letakkan ke dalam direktori tersebut:

grub-install --target=x86_64-efi --efi-directory=/boot/efi/EFI/grub \
 --bootloader-id=grub --boot-directory=/boot/efi/EFI --recheck --debug

Lalu saya tinggal membuat konfigurasi grub.cfg yang HARUS diletakkan ke dalam direktori grub untuk UEFI tersebut:

grub-mkconfig -o /boot/efi/EFI/grub/grub.cfg

Setelah itu saya reboot mesinnya untuk mengembalikan modus UEFI dari legacy BIOS. Tidak lupa saya mendaftarkan firmware grub yang saya buat tadi ke UEFI supaya dapat di-boot (gambar menyusul).

Setelah itu mesin Dell Precision m6800 ini dapat mem-boot Slackware saya dalam modus UEFI tanpa kendala apapun.

Ada yang punya cerita lain?