Saturday, September 24, 2011

Migrasi Linux Dari Partisi ke Partisi

Sebenarnya ini tulisan lama dari blog saya yg lama... cuman salah satu rekan saya di kantor kemarin menanyakan kemungkinan ini jadi saya publish ulang saja. Semoga ada manfaatnya ..
------------------------------------------------

Sebenarnya ini kasus yang kebetulan. Karena saya mau mencoba untuk menginstall MacOS X86 Leopard (yah, illegal rilis dari Kalyway agar Leopard bisa jalan di mesin X86), akan tetapi partisi sudah full.

Partition Map saya adalah sebagai berikut :
* /dev/sda1 WindowsXp Type c Win32 (LBA) Fat32
* /dev/sda2 Slackware Type 83 Linux ReiserFS
* /dev/sda3 FreeBSD Type BSD
* /dev/sda5 Extended
* /dev/sda6 Linux Swap Type 82 Swap Swap
* /dev/sda7 Linux Type 83 Linux ReiserFS
* /dev/sda8 Windows Type c Win32(LBA) Fat32
Nah, karena partisi primer hanya bisa ada 4 dalam satu fisik hardisk, berarti dengan adanya Extended partition yg berfungsi sebagai base dari logical partition berisi swap partition (a must) , maka 3 partisi pertama diatas (primer) adalah sudah full, dan tdk bisa lagi ditambah .
Sedangkan dari internet infonya si Mac X86 ini hanya bisa di primary partition sama seperti FreeBSD dan Solaris. Satu satunya cara untuk mengosongkan satu jatah partisi primer tanpa kehilangan salah satu operating system diatas adalah melakukan migrasi Slackware 12 ku ke logical partition. Pertanyaannya bisa apa tidak ??


Setelah melihat struktur file /etc/lilo.conf, satu satunya system operasi yang dipanggil tanpa chainloader, hanya kernel Linux (Slackware). Coba perhatikan petikan berikut dari /etc/lilo.conf :
===================
# Boot Up Slack
# Isikan dari lilo.conf
===================
Nah, kita hanya mendefinisikan kernelnya, ada dimana, namanya apa, kemudian definisikan root partition dimana, dan beberapa opsi lainnya seperti vga mode, dan init. Ok, berarti bisa dong Linux main partition ada di logical partition. Ok, we’ll work on it …
Sekarang masalahnya adalah “how”.
Saya menuliskan beberapa step di pikiran saya seperti begini :
- Partisi mesti minimal sama besar dengan current partition sekarang.
- Partisi mana yg mau dikorbankan, dan map nya bagaimana.
- OS mana yang jadi loader/host, dan yg lain jadi pengikut.
So i’ll get on my root box, typing “fdisk -l”
Suddenly these maps appears just like i’ve explain above.
Partition 2, jadi target untuk MacOS, so slackwarenya mesti move kemana. Saya ganti saja partisi data Linux saya di /dev/sda7, menjadi root partition. Bagaimana dengan menggunakan utility “dd” saja. Jadi sy cloning /dev/sda2 ke /dev/sda7, dari primer ke logical, menggunakan “dd”. Syaratnya sudah terpenuhi, besar partisi /dev/sda7 lebih besar dibanding /dev/sda2.Cuman masalahnya, dd hanya berlaku untuk “non-mounted” device. So, sekarang saat aktif di Slackware, berarti tdk bisa dong langsung melakukan dd on the fly..hehehe
Putar otak, ok..pake LiveCD, pake apa ..karena yg mau dikerjain ini Salckware, mungkin lebih sip pakai Slax (sebenarnya pake CD install juga bisa, mau pake Debian, Ubuntu,OpenSuSE bisa juga, yg penting bisa dapat root shell).
So, I came up with this Slax bootable CD, it’s fit on 8cm pocket cd, but I write this on a standard blank cd.
Setelah boot, masukkan password, slax menggunakan account “root” dengan password standar “toor”. Setelah itu, coba melihat map partitin menggunakan perintah “fdisk -l” dan mampnya persisi sama dengan saat melihat map di slackware, so tidak ada masalah.

Menggunakan dd

dd, adalah utility disk/device duplicate. Artinya menduplikasi secara utuh sebuah disk atau partition secara identik. Nah, mari kita praktek, namun sebelumnya “umount” dulu kedua partisi ini, karena biasanya, slax melakukan mount otomatis terhadap filesystem yang dikenalinya.Kemudian lakukan perintah ini (root permission) :

#dd if=/dev/sda2of=/dev/sda7

Sedikit penjelasan (cmiiw), if adalah opsi penentuan sumber cloning, sedangkan opsi of adalah target cloning. Jadi dd melakukan scanning sumber di /dev/sda2 dan menuliskannya per-sector ke /dev/sda7.
Setelah itu, kalau tdk ada error message berarti proses pen-duplikasian sedang berjalan. Waktu proses tergantung besar sumber duplikasi. Di kasus saya ini selesai setelah kurang lebih 20-30 menit, dengan besar sumber sekitar 12GB.
Selesai, dan sekarang kita lanjut ke kustomisasi, bagaimana membuat loader, mengenali dan bisa me-load kernel di /dev/sda7 juga mengenali root partitionnya.
Editing And Re-loading Boot Loader.
Mount partisi /dev/sda7, misalnya ke /mnt/linux.
#mount /dev/sda7 /mnt/linux
Lakukan “chroot” agar root partition yang dibaca bukan pada CD Slax, tapi pada /dev/sda7, aga kita bisa memperbaiki loader di/dev/sda7.
#chroot /mnt/sda7
chroot, hanya bisa mengenali direktori, not a device. Makanya kita “mounting” dulu.
Setelah itu, segala hal akan berjalan pada /dev/sda7 selaku root partition. Kemudian agar bisa si Linux baru ini berjalan sempurna maka yg perlu kita lakukan adalah :
- Edit /etc/fstab.
Agar pembacaan dan mapping partisi berjalan benar. Ingat karena kita melakukan dd, pastinya fstab ini sama dengan yang di /dev/sda2, jadi untuk benarnya, mesti disesuaikan.
- Edit Loader.
Jika menggunakan Grub, edit file menu.lst ada di folder /boot/grub. Sedangkan untuk lilo, ada di /etc/lilo.conf.
Kalau dari kasus saya hanya ini yang say ubah, dan Linux berjalan normal seperti sebelumnya.
Lakukan editing fstab, menggunakan editor favorit Anda. Sesuaikan :
- Map root (/) partition dan file systemnya.
- Map Swap partitionnya.
Lalu edit di loadernya :
Pada Grub
Edit baris ini :
# Slackware Linux
tittle Slackware GNU/Linux
kernel (hd0,6)
#isikan dari Grub #——————————————————————-
Catatan : Cuman, saya sudah mencoba, Grub hanya bisa meload 3 Operating System,lebih dari itu hanya menampilkan 3 system teratas, yg ke 4 tidak di load dan tidak ada di list.
Pada Lilo
Edit baris ini :
#isikan dari lilo ==================
Catatn : Untuk Lilo, sy sekarang memakai 4 OS di Laptop. Windows, Linux,Solaris dan FreeBSD.Lilo bisa meload semuanya dengan sempurna.

0 comments :