Dual boot Linux dengan Grub2 di Slackware

Tepat pada hari Minggu 09/10/2011 pukul 23.00 setelah pulang jalan-jalan dari kawah putih bandung, hasil oprekan saya dari kemarinnya mengenai cara dual boot Linux Slackware menggunakan grub2.

Kenapa si memakai grub daripada menggunakan lilo?

Jawabannya simple kok.. Liat aja di postingan ane sebelumnya di antara-grub-dan-lilo.html.
Nah yang jadi pertanyaan di sini adalah, dari postingan ane sebelumnya itu menggunakan grub legacy, lah ini kan memakai grub2???.

Jadi bagaimanakah cara mendual boot Linux di Slackware (dalam kasus ini di dual dengan Ubuntu)?

Nah sekarang simak baik-baik penjelasan ane, yang insya Allah mudah di pahami.Hehehe

Oke karena saat blog ini diposting sudah larut malam dan saya juga lagi capek banget, kita langsung aja menuju TKP…He

  1. Karena kita ingin memakai grub2 di Slackware, maka kita harus mendownload grub2nya di http://slackbuilds.org/repository/13.37/system/grub2/ dahulu.
    sudah pada tahukan cara menginstall paket dengan slackbuild? Kalau belum tahu, wah gaswat tu, search di Google aja ya?
  2. Oke setelah grub2 kita download dan install. Maka yang perlu kita lakukan selanjutnya adalah:

    # grub-install /dev/sda
    Installation finished. No error reported.

  3. Dari hasil perintah di atas, penginstalan grub2 pun berhasil ke MBR.

    Terus apa lagi ni cara selanjutnya?

    Haha cara selanjutnya ya kita harus lakukan pengeditan di grub.cfg, tapi sebelum melakukan pengeditan, buat dulu grub.cfg-nya yuk?

    # grub-mkconfig -o /boot/grub/grub.cfg

  4. Lah kok beda dengan grub punya saya, kalau saya pake menu.lst untuk mengkonfigurasinya
    Nah itu dia bedanya grub2, dia tidak memakai menu.lst lagi, tapi memakai grub.cfg sebagai file configurasinya.. Agak ribet menurut saya dengan grub.cfg ini, tapi gak usah dipikir pusink kok, asal mau belajar pasti bisa.
  5. Langkah selanjutnya apa ni?
    Langkah selanjutnya sekarang kita liat pemosisian partisi linux kita dengan menggunakan: # fdisk -l

    isk /dev/sda: 320.1 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x100f59dc

       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *          63   195318269    97659103+  83  Linux
    /dev/sda2       195318270   199222064     1951897+  82  Linux swap
    /dev/sda3       199222065   420343807   110560871+  83  Linux
    /dev/sda4       420343808   625139711   102397952   83  Linux
  6. Keterangan:
    /dev/sda1 : Partisi Slackware (system utama)
    /dev/sda2: Swap
    /dev/sda3: Partisi data pribadi saya
    /dev/sda4: Partisi Linux Ubuntu
  7. Nah setelah mengetahui partisi ubuntu ada dimana, saatnya kita lakukan perintah berikut:

    # mkdir /ubuntu
    # mount /dev/sda4 /ubuntu

    Tujuannya adalah untuk membuat direktory /ubuntu dan memountingnya ke direktory tersebut

  8. Setelah di mount partisi ubuntunya, saatnya kita copy vmlinuz dan initrd si ubuntu ke direktory /boot-nya si Slackware.
    # cd /ubuntu
    # ls /ubuntu/boot/
    System.map-2.6.38-8-generic    initrd.img-2.6.38-9-generic
    System.map-2.6.38-9-generic    memtest86+.bin
    abi-2.6.38-8-generic   memtest86+_multiboot.bin
    abi-2.6.38-9-generic   vmcoreinfo-2.6.38-8-generic
    config-2.6.38-8-generic   vmcoreinfo-2.6.38-9-generic
    config-2.6.38-9-generic   vmlinuz-2.6.38-8-generic
    grub   vmlinuz-2.6.38-9-generic
    initrd.img-2.6.38-8-generic.
    Contoh kali ini saya akan mengkopy vmlinuz versi 2.6.38-9-generic dan initrd.img-2.6.38.9-generic punyanya si Ubuntu

    # cp /ubuntu/vmlinuz-2.6.38-9-generic /boot/
    # cp /ubuntu/initrd.img-2.6.38.9-generic /boot/

  9. Terus karena sudah tau letak-letaknya partisi Linux tadi dengan fdisk -l, sekarang saatnya kita edit file grub.cfg yang berada di direktory /boot/grub/grub.cfg

    # nano /boot/grub/grub.cfg

  10. Ini dia isi grub.cfg punya saya:
    # DO NOT EDIT THIS FILE
    #
    # It is automatically generated by grub-mkconfig using templates
    # from /etc/grub.d and settings from /etc/default/grub
    #
    ### BEGIN /etc/grub.d/00_header ###
    if [ -s $prefix/grubenv ]; then
      load_env
    fi
    set default=”0″
    if [ “${prev_saved_entry}” ]; then
      set saved_entry=”${prev_saved_entry}”
      save_env saved_entry
      set prev_saved_entry=
      save_env prev_saved_entry
      set boot_once=true
    fi
    function savedefault {
      if [ -z “${boot_once}” ]; then
        saved_entry=”${chosen}”
        save_env saved_entry
      fi
    }
    function load_video {
      insmod vbe
      insmod vga
      insmod video_bochs
      insmod video_cirrus
    }
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)’
    search –no-floppy –fs-uuid –set=root 8603ed47-d522-41ea-81c1-1f007ff93820
    if loadfont /usr/share/grub/unifont.pf2 ; then
      set gfxmode=640×480
      load_video
      insmod gfxterm
      insmod part_msdos
      insmod ext2
      set root='(hd0,msdos1)’
      search –no-floppy –fs-uuid –set=root 8603ed47-d522-41ea-81c1-1f007ff93820
      set locale_dir=($root)/boot/grub/locale
      set lang=
      insmod gettext
    fi
    terminal_output gfxterm
    set timeout=10
    ### END /etc/grub.d/00_header ###
    ### BEGIN /etc/grub.d/10_linux ###
    menuentry ‘Slackware-3.1.0-rc8-slack’ –class slackware-13.37.0 –class gnu-linux –class gnu –class os {
    load_video
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)’
    search –no-floppy –fs-uuid –set=root 8603ed47-d522-41ea-81c1-1f007ff93820
    echo ‘Loading Linux 3.1.0-rc8-slack …’
    linux /boot/vmlinuz-3.1.0-rc8-slack root=/dev/sda1 ro  
    }
    menuentry ‘Ubuntu-2.6.38-9-generic’ –class slackware-13.37.0 –class gnu-linux –class gnu –class os {
    load_video
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos4)’
    search –no-floppy –fs-uuid –set=root 8603ed47-d522-41ea-81c1-1f007ff93820
    echo ‘Loading Linux 2.6.38-9-generic …’
    linux /boot/vmlinuz-2.6.38-9-generic root=/dev/sda4 ro  
    echo ‘Loading initial ramdisk …’
    initrd /boot/initrd.img-2.6.38-9-generic
    }
    ### END /etc/grub.d/10_linux ###
    ### BEGIN /etc/grub.d/20_linux_xen ###
    ### END /etc/grub.d/20_linux_xen ###
    ### BEGIN /etc/grub.d/30_os-prober ###
    ### END /etc/grub.d/30_os-prober ###
    ### BEGIN /etc/grub.d/40_custom.new ###
    # This file provides an easy way to add custom menu entries.  Simply type the
    # menu entries you want to add after this comment.  Be careful not to change
    # the ‘exec tail’ line above.
    ### END /etc/grub.d/40_custom.new ###
    ### BEGIN /etc/grub.d/41_custom ###
    if [ -f  $prefix/custom.cfg ]; then
      source $prefix/custom.cfg;
    fi
    ### END /etc/grub.d/41_custom ###
  11. Nah loch banyak banget kan? Bingung kan? Tenang aja, gak usah bingung kok. Ni ane kasih penjelasan ya? Tapi menurut pemahaman saya ya?
    Keterangan:

    ### BEGIN /etc/grub.d/10_linux ### menuentry ‘Slackware-3.1.0-rc8-slack’

    Maksudnya adalah saya memberikan kernel ini dengan nama Slackware-3.1.0-rc8-slack (bisa kita edit kok menjadi slackware-aku-dong. Harus di tulis di antara tanda kutif)

    set root='(hd0,msdos1)’

    Maksudnya si root itu di akses dari sda1 (liat aja dari msdos1).Hehe

    linux /boot/vmlinuz-3.1.0-rc8-slack root=/dev/sda1 ro

    Maksudnya adalah kernel itu saya booting dari direktory /boot dengan nama kernel vmlinuz-3.1.0-rc8-slack. Sedangkan rootnya itu di akses dari partisi /dev/sda1 dengan read-only (ro)

    menuentry ‘Ubuntu-2.6.38-9-generic’

    Nah ini dia yang pentingnya, di situ di jelaskan saya memberi nama kernel ini dengan nama Ubuntu-2.6.38-9-generic (bisa di edit juga kok namanya.)

    set root='(hd0,msdos4)’

    Maksudnya si ubuntu ini di akses dari sda4(liat aja msdos4). Ingat ini menyatakan set rootnya mengacu ke sda4, karena sesuai dengan fdisk -l tadi, Ubuntu saya berada di /dev/sda4, jadi harus di ganti sesuai Ubuntu/Linux lain anda

    linux /boot/vmlinuz-2.6.38-9-generic root=/dev/sda4 ro

    Maksudnya saya memboot si Ubuntu dari di direktory /boot Slackware dengan versi kernel yang dipakai vmlinuz-2.6.38-9-generic (ingat ini harus sesuai dengan vmlinuz si Ubuntu yang telah kita copy tadi ke direktory boot Slackware). Lalu rootnya juga mengacu ke /dev/sda4 (harus sesuai partisi ubuntu anda di fdisk -l tadi)

    initrd /boot/initrd.img-2.6.38-8-generic

    Maksudnya dia mengakses file initrd si Ubuntu dari direktory boot Slackware dengan nama initrd.img-2.6.38-8-generic (ingat ini juga harus kita sesuaikan dengan file initrd.img si Ubuntu yang telah kita copy ke direktory Slackware tadi)

  12. Lalu setelah di edit, grub.cfg melalui nano jangan lupa disimpan ya dengan menekan ctrl+x lalu pencet y. Lalu terakhir kita jalankan

    # grub-install /dev/sda

Nah oke setelah sekian panjangnya cara di atas, insya Allah Slackware anda bisa dual booting dengan Linux lainnya. Coba aja reboot…Hehe
Catatan: Padahal di grub.cfg itu bertuliskan bahwa kita jangan mengedit file itu, tapi ya menurut ane cara itu bisa mengatasi dual boot ane. Yaudah jadi terpaksa dah di edit dan wong tidak error kok. Tapi malah berhasil.Haha Selamat mencoba dan jangan takut gagal

Advertisements

2 comments

  1. @radically:
    Tentu bisa dong, artikel itu kan cuma konsep aja. Misal di Ubuntu, biasanya menurut pengalaman ane, dia otomatis menambahkan OS lain kedalam grubnya apabila kita lakukan perintah $ sudo update-grub.
    Tapi kalau gagal, bisa coba edit di /etc/grub.d/40_custom dan tambahkan Linuxnya di situ.
    Sebenarnya ada 2 cara yang saya temuin (yg mengedit 40_custom itu, tapi belom sempet nulis lagi.. Tapi tenang pake cara artikel di atas juga bisa kok.. Tinggal menyesuaikan aja 😀

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s