Kerusakan master boot record atau tabel partisi
Hard
disk terdiri atas MBR (Master Boot Record), tabel partisi lalu diikuti
oleh partisi-partisi sejumlah yang dibuat oleh user. Kerusakan pada MBR
dan/atau tabel partisi bisa menyebabkan sistem operasi tidak bisa
di-boot atau satu atau lebih partisi terlihat seperti hilang. Hal ini
hanya “kelihatannya” karena sebenarnya partisi dan data di dalamnya
masih ada. Penyebab kerusakan MBR bisa bermacam-macam. Misalnya, saat
Anda meng-install Windows setelah Anda meng-install Linux, sehingga
sistem
Windows saja yang bisa di-boot. Contoh lainnya bisa juga saat Anda melakukan suatu kecerobohan saat menjalankan perintah:
# dd if=/dev/zero of=/dev/sda bs=1 count=512 Perintah di atas akan melakukan penulisan angka 0 (nol) sebanyak 512 byte mulai dari sektor pertama hard disk kita. Ini adalah lokasi tempat MBR dan tabel partisi diletakkan. Secara visual, pesan kesalahan yang mungkin muncul di layar monitor akibat permasalahan semacam ini adalah sebagai berikut.
# dd if=/dev/zero of=/dev/sda bs=1 count=512 Perintah di atas akan melakukan penulisan angka 0 (nol) sebanyak 512 byte mulai dari sektor pertama hard disk kita. Ini adalah lokasi tempat MBR dan tabel partisi diletakkan. Secara visual, pesan kesalahan yang mungkin muncul di layar monitor akibat permasalahan semacam ini adalah sebagai berikut.
FATAL: No bootable device
Untuk
mengatasi masalah tersebut, masukkan CD System Rescue ke drive CD/DVD.
Tekan [Enter] saat muncul layar pembuka agar System Rescue bisa memulai
proses booting seperti layaknya sistem Linux pada umumnya. Begitu tampil
prompt, bersiaplah memulai proses penyelamatan. Pertama, kita jalankan
program Testdisk untuk mengembalikan tabel partisi. Ketik pada prompt:
(catatan: prompt pada System Rescue CD menggunakan tanda “%”)
root@sysresccd /root % testdisk
Akan
nampak tiga pilihan, yaitu Create, Append, dan No Log. Opsi Create
dipilih untuk menciptakan file log baru. File ini sebenarnya berisi
catatan prosedur-prosedur yang dilaksanakan selama proses recovery
partisi.
Pada
layar berikutnya akan ditanyakan nama device hard disk yang akan
dianalisis. Dalam hal ini, penulis memilih /dev/sda karena targetnya
adalah hard disk primary master. Apabila Anda memiliki lebih dari satu
hard disk, pastikan terlebih dahulu nama hard disk yang dipilih benar
yang ingin di-recover. Hal ini bisa dicek sebelumnya di shell misalnya
dengan perintah:
Siap
digunakan saat booting Beberapa fungsi dalam System Rescue CD bisa
langsung Anda jalankan, saat sistem Linux masuk salah satu tahapan
booting.% dmesg| grep -C 2 ‘[sh]d[a-z]’
…
scsi 0:0:0:0: Direct-Access ATA QEMU HARDDISK
0.10 PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 10485760 512-byte logical blocks: (5.36
GB/5.00 GiB)
Dari
output di atas jelas terlihat bahwa ada satu hard disk (sda) berukuran
5 GB. Setelah Anda memilih nama device dan menekan [Enter], layar
berikutnya akan menampilkan informasi jumlah sektor yang terdeteksi.
Pilih Continue karena layar ini sekadar informasi saja.
Pada
layar berikutnya, Anda akan ditanyakan mengenai jenis format partisi.
Kebanyakan dari kita menggunakan sistem IBM PC Compatible. Jadi,
pilihlah Intel. Namun, jika Anda menggunakan format lain, misalnya hard
disk Mac, Anda perlu memilih tipe yang sesuai. Tekan [Enter] untuk
menuju layar berikutnya.
Sekarang
Anda bisa memulai tahap recovery sebenarnya. Pilih Analyse lalu tekan
[Enter]. Layar berikutnya akan menampilkan daftar partisi yang
ditemukan. Tentu saja saat ini masih kosong. Pilih menu Quick Search dan
tekan [Enter] sekali lagi. Akan muncul dialog yang menanyakan apakah
Anda akan memperbaiki partisi yang dibuat oleh Windows Vista. Apabila
memang ada partisi yang ada buat lewat Vista, jawab dengan Y. Untuk
ilustrasi, penulis memilih N karena dianggap semua partisi dibuat oleh
sistem Linux.
Proses deteksi akan dimulai dan hasilnya adalah seperti berikut ini.
Disk /dev/sda – 5368 MB / 5120 MiB – CHS 652 255 63
Partition Start End Size in sectors
* Linux 0 1 1 318 254 63 5124672 [/]
Linux Swap 319 0 1 383 254 63 1044225
Linux LVM 384 0 1 416 254 63 530145
Linux LVM 417 1 1 449 254 63 530082
Linux LVM 450 1 1 482 254 63 530082
Luangkan
waktu beberapa saat untuk mengecek temuan Testdisk. Pilih tiap-tiap
partisi yang ditemukan, lalu lihat keterangan di baris terbawah layar.
Di sana akan terlihat format file system (jika sudah diformat) beserta
ukurannya. Contohnya, untuk partisi pertama didapatkan informasi:
EXT3 Large file Sparse superblock, 2623 MB / 2502 MiB
Masih
kurang yakin? Anda bisa melihat file-file apa saja yang tersimpan di
dalam partisi tersebut. Sorot partisi yang diinginkan dan tekan [P].
Kini Anda bisa melihat struktur file dan direktori di dalamnya. Setelah
selesai, tekan [q] dan Anda akan kembali ke layar daftar partisi.
Setelah
Anda yakin semua partisi telah ditemukan, tekan [Enter]. Layar
berikutnya akan menanyakan apakah akan dilakukan pencarian lebih teliti
lewat Deeper Search atau langsung menuliskan daftar partisi ke hard
disk. Di sini diasumsikan penulisan langsung dilakukan ke hard disk,
sehingga dipilih Write. Pada layar konfirmasi, tekan [Y] dan penulisan
akan dilakukan. Akan muncul pesan yang meminta Anda melakukan reboot
komputer. Hal ini perlu dilakukan untuk memastikan BIOS dan sistem
operasi Anda membaca tabel partisi yang tadi baru saja ditulis.
Kembali ke menu utama, pilih Quit. Lakukan reboot lewat prompt shell dengan mengetik:
% reboot
Keluarkan
CD System Rescue dan biarkan hard disk di-booting. Bagaimana hasilnya?
Mungkin saja tidak tampak tampilan menu bootloader, seperti GRUB atau
LILO, dan sistem masih belum bisa di-boot. Jadi, apa yang kurang?
Program
Testdisk hanya mengembalikan tabel partisi yang terhapus, tetapi tidak
mengembalikan instalasi bootloader seperti sedia kala. Untuk itu, kali
ini kita perlu menuliskan program loader kembali ke MBR. Ada beberapa
cara, dan kali ini akan dibahas salah satunya yang relatif praktis.
Booting kembali System Rescue Linux dan prompt awal, ketik perintah
grubdisk. Akan muncul pilihan awal kurang lebih seperti ini:
Boot Ubuntu Gnu/Linux
AUTO MAGIC BOOT
Pilih
Auto Magic Boot. Program akan mendeteksi daftar sistem operasi yang
bisa di-booting. Pada kasus penulis, layar akan menampilkan:
Boot Ubuntu Gnu/Linux
AUTO MAGIC BOOT
Linux 2.6.18-128.el5
Linux 2.6.18-128.el5 (single-user mode)
Other OS
Ini
sudah sesuai dengan entry yang penulis harapkan. Hasil yang Anda
dapatkan tentunya bisa berbeda. Di sini, penulis memilih Linux
2.6.18-128.el5 dan menekan [Enter] untuk masuk ke sistem CentOS.
Apabila tidak ada masalah, booting akan berjalan normal sampai dengan
muncul layar login, entah itu di mode teks atau grafis. Masukkan user
dan password dari root. Dari prompt, ketik:
Gagal booting Pesan seperti ini bisa menandakan bahwa Master Boot Record mengalami kerusakan.# grub-install /dev/hda
Apabila tidak ada masalah, akan tampil laporan seperti berikut ini.
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.
map. Check if this is correct or not. If any of the lines
is incorrect, fix it and re-run the script ‘grub-install’.
# this device map was generated by anaconda
(hd0) /dev/hda
Kali
ini digunakan nama device hda karena CentOS mendeteksi hard disk dengan
nama berbeda. Untuk mengetahuinya, gunakan perintah dmesg sama seperti
saat kita menentukan nama hard disk yang menjadi target operasi
Testdisk.
Sekarang
Anda tinggal me-reboot komputer sekali lagi. Pastikan booting dilakukan
dari hard disk…dan sim salabim!. Menu GRUB telah kembali dan Linux
kembali bisa dibooting dengan normal!
Kegagalan mount akibat kerusakan superblock
Biasanya
kegagalan seperti ini tidak terlalu jelas. Misalnya, Anda melakukan
operasi mount, bisa muncul output seperti berikut ini.
# mount -v /dev/sda1 /mnt/disk
mount: you didn’t specify a filesystem type for /dev/
sda1
I will try all types mentioned in /etc/filesystems or
/proc/filesystems
Trying #
Trying #vfat
Trying fuseblk
mount: you must specify the filesystem type
Atau
jika partisi yang dimaksud adalah partisi yang ditempati oleh file-file
bootloader (GRUB dalam hal ini), bisa jadi Anda mendapat pesan saat
booting seperti berikut ini.
Booting from Hard Disk…
GRUB Loading stage1.5.
GRUB loading, please wait…
Error 17
Ini
adalah tanda-tanda adanya ketidakberesan pada struktur filesystem.
Kenapa ini bisa terjadi? Superblock adalah sektor-sektor pada suatu disk
yang berisi informasi mengenai suatu partisi, misalnya kapan terakhir
kali partisi di-mount, jumlah inode, keterangan lokasi data, dan
seterusnya. Superblock juga merupakan area yang dibaca oleh program
“mount” saat proses mounting. Jadi, jika terjadi corrupt pada sebagian
atau keseluruhan isi superblock, bisa ditebak proses mount akan gagal.
Alhasil, keseluruhan filesystem gagal diakses. Untuk meyakinkan akar
masalah, boot System Rescue CD dan lakukan pengecekan dengan perintah
fsck:
% fsck -p /dev/sda1
fsck from util-linux-ng 2.16.1
fsck.ext2: Bad magic number in super-block while trying
to open /dev/sda1
/dev/sda1:
The superblock could not be read or does not describe
a correct ext2
filesystem. If the device is valid and it really contains
an ext2
filesystem (and not swap or ufs or something else), then
the superblock
is corrupt, and you might try running e2fsck with an
alternate superblock:
e2fsck -b 8193 <device>
Adanya
pesan di atas membuktikan bahwa ada suatu masalah di superblock.
Jalankan ulang perintah fsck seperti berikut untuk mencoba membenahinya:
% fsck.ext3 -b 8193 /dev/sda1
e2fsck 1.41.9 (22-Aug-2009)
fsck.ext3: Bad magic number in super-block while trying
to open /dev/sda1
Gagal
lagi! Penyebabnya sangat dimungkinkan karena kita salah memberikan
posisi superblock cadangan lewat parameter -b. Sebagai catatan, file
system seperti ext3 menyimpan beberapa superblock cadangan pada posisi
sektor-sektor tertentu. Sekarang tugas kita adalah mencoba mencarinya.
% mkfs.ext3 -j -n /dev/sda1
mke2fs 1.41.9 (22-Aug-2009)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
160320 inodes, 640584 blocks
32029 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=658505728
20 block groups
32768 blocks per group, 32768 fragments per group
8016 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Opsi
-n mengatur agar perintah mkfs melakukan simulasi, jika seandainya
terjadi operasi format yang sebenarnya. Dengan demikian, Anda tidak
perlu khawatir data akan hilang (tentu saja, jangan lupa menuliskan opsi
-n). Angka yang dicetak tebal adalah posisi sektor yang kita cari. Kita
lakukan sekali lagi fsck:
% fsck.ext3 -b 32768 -p /dev/sda1
Opsi
-p dipakai agar fsck melakukan perbaikan secara otomatis tanpa banyak
menanyakan konfirmasi ke user. Akan muncul rentetan output semacam ini:
/: Inode 546969, i_blocks is 576, should be 568. FIXED.
/: Inode 546971, i_blocks is 1280, should be 1272.
FIXED.
/: Inode 546974, i_blocks is 1792, should be 1784
. FIXED.
Dan kemungkinan diakhiri dengan:
/: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
Kita ulangi sekali lagi perintah fsck, tetapi tanpa parameter apapun:
% fsck /dev/sda1
Jika
Anda menghadapi banyak pertanyaan yang menuntut Anda mengetik y
(setuju), Anda bisa mempercepat proses dengan menekan [Ctrl]+[C] untuk
menghentikan proses cek. Lalu, gunakan opsi -y pada perintah fsck agar
semua pertanyaan langsung disertakan dengan ‘y’.
Recover
tabel partisi dengan testdisk Partisi hard disk hilang? Program
Testdisk mungkin dapat menemukannya (menyelamatkannya) kembali.
Recovery data pada bad sector
Hard
disk yang sudah berumur atau memiliki cacat dari pabrik, lambat laun
akan memiliki bad sector (sektor rusak). Secara singkat, bad sector bisa
diibaratkan lubang pada jalan raya. Hal ini mengakibatkan penyimpanan
data menjadi tidak sempurna atau kadang data menjadi tidak bisa diakses
sama sekali. Dalam keadaan ini, Anda punya beberapa alternatif
tindakan, tetapi biasanya yang paling banyak disarankan adalah melakukan
penduplikasian data ke hard disk berbeda atau media penyimpanan lain
secepatnya.
Mengapa demikian? Ada dua alasan:
->Apabila
kita menyalin ke disk yang sama (sekalipun beda partisi), dikhawatirkan
akan muncul bad sector juga cepat atau lambat. Dengan kata lain, hard
disk yang memiliki suatu bad sector dianggap potensial untuk memiliki
kasus serupa di sektor yang lain.
->Tidak
ada jaminan bahwa proses perbaikan bad sector akan berjalan 100% tanpa
kesalahan. Bisa saja selama perbaikan, data justru menjadi makin tidak
terselamatkan. Dengan begitu, Anda bisa saja kehilangan data lebih
banyak.
Penulis
menyarankan untuk menyiapkan hard disk baru dengan ruang kosong minimal
sama dengan besarnya partisi yang akan diselamatkan datanya. Pasang
hard disk ini pada sambungan kabel IDE atau SATA yang kosong, atau bisa
juga diset sebagai slave. Usahakan melakukan pemasangan komponen
komputer dengan meminimalkan listrik statis, misalnya dengan menggunakan
gelang antilistrik statis.
Setelah
hard disk kedua terpasang, boot System Rescue Linux hingga prompt
muncul. Kita anggap di sini partisi yang bermasalah adalah /dev/sda1,
sementara backup dilakukan pada /dev/sdb1 yang kita mount sebagai
/mnt/backup. Program yang akan kita pakai adalah perintah ddrescue
seperti berikut ini.
% mount /dev/sdb1 /mnt/backup
% ddrescue -S -d /dev/sda1 /mnt/backup/backup.img
Press Ctrl-C to interrupt
rescued: 2623 MB, errsize: 0 B, current rate
: 29491 kB/s
ipos: 2623 MB, errors: 0, average rate:
14557 kB/s
opos: 2623 MB, time from last successful read:
0 s
Finished
Di sini digunakan dua opsi:
-S
untuk menghasilkan sparse file, yaitu suatu file yang memiliki “lubang”.
Dengan cara ini, ukuran file sebenarnya bisa lebih kecil dari ukuran
partisi yang diselamatkan karena data ditulis hanya sebesar data yang
diselamatkan.
-d
untuk melakukan pembacaan secara direct access. Apa maksudnya? Pembacaan
data akan dilakukan dengan mengabaikan beberapa mekanisme tertentu di
filesystem, khususnya caching. Hasilnya pembacaan relatif selesai lebih
cepat dan data yang dibaca bisa digaransi langsung berasal dari fisik
disk.
Hasilnya adalah suatu file image yang berisi data-data Anda. Ini bisa dibuktikan dari perintah file:
% file /mnt/backup/backup.img
/mnt/backup/backup.img: Linux rev 1.0 ext3 filesystem
data (large files)
Tipe
filesystem tentunya akan sesuai dengan format yang Anda pakai, jadi
bisa saja ini berupa reiserfs, XFS, FAT32 dan seterusnya. File ini lalu
bisa Anda mount untuk mengakses data-data di dalamnya:
% mkdir /mnt/test
% mount -o loop /mnt/backup/backup.img /mnt/test
Mungkin
tidak semua file bisa terbaca dengan baik di dalam direktori /mnt/test.
Ini adalah risiko, tetapi ini lebih baik daripada data tidak bisa
dibaca sama sekali.
Terakhir, kita coba perbaiki disk kita yang berisi bad sector:
% fsck -cc -k /dev/sda1
Pengecekan
pada dasarnya dilakukan dengan melakukan proses baca tulis (opsi -cc)
tanpa merusak data yang ada. Opsi -k akan mengatur perintah fsck
melakukan update daftar bad sector (jika ada) di metadata file system.
Hal ini akan mencegah penulisan data di masa depan pada sektor yang
sama. Namun, jika bad sektor sudah sedemikian banyaknya, disarankan
untuk tidak lagi memakai disk tersebut.
sumber : http://dea.meximas.com/tugas-sistem-operasi/jenis-jenis-kerusakan-saat-instalasi-sistem-operasi-open-source/