2007/08/14

Membuat USB-flash boot

Anda pengguna PC? Suka bereksperimen dengan multiple OS dalam 1 PC? Jika ya, pasti tidak aneh dengan keluhan2 seperti "Di PC saya muncul 'disk boot error'", atau "waaah, bootloadernya ketimpa", bisa juga "grub-nya hilang euy". Keluhan seperti itu tidak hanya muncul dari para pengguna yang masih pemula, tapi juga para ahli dan hacker2 ternama. Tentu, yang terakhir disebutkan biasanya punya cara untuk mengatasi hal itu, tapi bukan berarti mereka tidak pernah mengalami masalah itu.

Sejak awal saya berkenalan dengan OS GNU/Linux, saat instalasi pastilah ditawari untuk membuat 'disket boot'. Yang akan berguna jika PC anda tidak bisa memboot lewat harddrive, atau saat masalah2 di atas terjadi. Intinya adalah: 'kita harus punya media (backup) yang bisa dipakai untuk mem-boot PC'.

Sebelumnya saya sangat mengandalkan livecd seperti Knoppix dan Kanotix untuk bisa mengembalikan bootloader yang hilang. Sayang hal ini kurang praktis karena mau tidak mau kita harus ikut dengan cara yang diberikan oleh livecd tersebut. Bisa saja kita lakukan remaster, tapi butuh waktu cukup lama karena penulisan ke media cd butuh waktu agak lama dan alat penulis khusus.

Cara paling praktis tentu dengan memanfaatkan floppy-disk (disket). Tapi sayang, selain kapasitas data yang sangat terbatas, saat ini disket sudah sangat tidak popular. Malah beberapa penjual PC hanya menyertakan floppy-drive jika dipesan oleh pembeli.

Inilah saatnya kita memanfaatkan USB flashdisk. Tentu banyak juga limitasinya, misal: PC belum bisa boot lewat media USB, atau PC anda tidak punya port USB. Ya kalau yang satu ini tidak bisa dilakukan, tetap bisa milih cara lain yang telah disebutkan di atas. Membuat flashdisk-boot sebagai pengganti disket-boot ini terinspirasi dari cara membuat live-usb DSL.

Caranya sangat mudah dan persiapannya juga tidak rumit. Anda hanya perlu sebuah sistem linux yang sudah berjalan dengan baik dan menggunakan bootloader grub, serta sebuah USB flashdisk. Boot-up linux anda, dan colokkan USB-flash. Segera cari tahu dikenali sebagai file apakah USB-flash anda. Dalam kasus saya, USB dikenali sebagai /dev/sdc dan partisi pertama dikenali sebagai /dev/sdc1 (partisi ini yang saya jadikan root bootloader). Berikut sebagian output dari perintah dmesg:
usb 2-8: new high speed USB device using ehci_hcd and address 3
usb 2-8: configuration #1 chosen from 1 choice
Initializing USB Mass Storage driver...
scsi4 : SCSI emulation for USB Mass Storage devices
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usb-storage: device found at 3
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 4:0:0:0: Direct-Access USB Flash Memory 1.00 PQ: 0 ANSI: 0 CCS
SCSI device sdc: 246272 512-byte hdwr sectors (126 MB)
sdc: Write Protect is off
sdc: Mode Sense: 23 00 00 00
sdc: assuming drive cache: write through
SCSI device sdc: 246272 512-byte hdwr sectors (126 MB)
sdc: Write Protect is off
sdc: Mode Sense: 23 00 00 00
sdc: assuming drive cache: write through
sdc: sdc1
sd 4:0:0:0: Attached scsi removable disk sdc

Mountlah partisi yang akan dijadikan root bootloader ke direktori yang sebelumnya telah dibuat. Filesystem FAT32 yang biasa digunakan pada USB tidak perlu diubah.
# mkdir /mnt/reskyu && mount /dev/sdc1 /mnt/reskyu

Setelah berhasil dimount, buatlah direktori bernama boot/ di dalam partisi tadi. Lalu salin seluruh file yang ada di /boot/grub/ sistem linux anda ke direktori yang baru dibuat.
# mkdir /mnt/reskyu/boot && cp -av /boot/grub /mnt/reskyu/boot

Sekarang buatlah file boot/grub/menu.lst, yang berfungsi sebagai konfigurasi tampilan menu GRUB, di dalam partisi USB. Dalam kasus saya file tersebut adalah /mnt/reskyu/boot/grub/menu.lst. Hapus saja file tersebut jika sebelumnya telah ada. Buatlah supaya file itu berisi seperti di bawah ini:
color light-green/black blink-light-blue/black

title ===Edit salahsatu untuk boot sistem kau===

title Boot Linuk (edit dulu)
root (hdX,X)
kernel /boot/vmlinuz root=/dev/sdXY vga=788 panic=15 selinux=0 ro
initrd /boot/initrd.img

title Boot Window (edit dulu)
rootnoverify (hd0,0)
chainloader +1

Setelah file tersebut di-save, saatnya kita install GRUB ke USB. Telah disebutkan di atas, USB saya dikenali sebagai sdc (bukan sdc1) yang menurut BIOS merupakan harddrive ke-3. Maka proses instalasi GRUB adalah seperti ini:
# grub

GNU GRUB version 0.97 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]

grub> root (hd2,0)
Filesystem type is fat, partition type 0x6

grub> setup (hd2)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/fat_stage1_5" exists... yes
Running "embed /boot/grub/fat_stage1_5 (hd2)"... 15 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd2) (hd2)1+15 p (hd2,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
Done.

grub> quit

Dan selesailah sudah pembuatan "USB-flash boot" anda. Silahkan di-unmount lalu cabut. Anda tinggal mencolokkan USB sebelum PC dinyalakan, dan pastikan bahwa device USB itulah yang pertama dibaca oleh PC saat booting.

Perlu diperhatikan, bahwa jika anda hanya memilih boot-list yang ada lalu menekan enter dipastikan proses booting akan gagal. Anda harus mengedit dulu perintah2 pada boot-stanza yang akan anda gunakan. Yang perlu diedit biasanya adalah device pada baris yang diawali dengan kata "root", dan beberapa parameter pada baris yang diawali dengan kata "kernel". Serta pastikan kernel dan initrd-image yang akan di-boot memang telah ada di sistem anda. Untuk boot-stanza windows, biasanya tidak perlu ada pengeditan. Menu di atas sudah bisa memboot windows pada sebagian besar PC.

Akan ada tulisan lanjutan di posting berikutnya, segera. Anda bisa bereksperimen dan berkreasi sendiri dalam pembuatan "USB-flash boot" anda masing2.

2007/08/04

Puteri Indonesia 2007: Pengecut Atau Pahlawan

"Apa perbedaan mendasar antara pengecut dan pahlawan?"

Itu pertanyaan final yang diberikan pada 3 besar pemilihan Puteri Indonesia. Pertanyaan yg cukup bagus. Agak-agak berbau jebakan, kalau menurut saya. Tapi memang pasti tiap orang akan punya pendapat yang beda tentang hal ini.

Pendapat saya, pengecut dan pahlawan adalah sama. Betul sama saja, tidak ada bedanya. Yang membuat mereka berbeda hanyalah lingkungannya. Seorang dianggap pahlawan oleh orang lain di lingkungannya (ya iyalah, masak dianggap pahlawan sama diri sendiri), tapi belum tentu dianggap pahlawan oleh orang-orang di lingkungan lain. Apalagi oleh orang-orang di lingkungan yang memusuhi orang tersebut.

Tentara Amerika, yang menurut saya (saya simpati ke Irak) adalah para teroris pengecut, pasti dianggap pahlawan oleh orang Amerika. Apalagi oleh keluarga mereka. Walaupun, tentu, orang Amerika penentang perang Irak tidak akan menganggap mereka pahlawan.

Ini mungkin terpengaruh oleh lirik lagu "Stay (Far away, so close)" gubahan Bono dari grup U2. "The vampire or the victim, it depends on who's around." Betul kan?

2 finalis di Putri Indonesia barusan, memberi jawaban standar bahwa pahlawan adalah baik dan pengecut adalah buruk. Tapi finalis dari Jawa Timur (saya bukan pendukungnya, tapi saya sedikit suka jawabannya) menjawab dengan unik.

"Menurut saya pengecut dan pahlawan adalah sama saja. Mereka telah berusaha. Hanya saja, pahlawan beruntung karena perjuangannya berhasil, sementara pengecut hanya kurang beruntung."

Begitu kira-kira jawabannya. Cukup membuat saya senang. Dan sepertinya kali ini juri sependapat dengan saya, putri dari Jatim itulah yang menang.

Secara keseluruhan, pendapat saya tentang acara ini masih sama seperti di posting saya sebelumnya. Tapi kali ini saya senang karena yang pendapatnya rada-rada mirip dg saya yang menang.