Tadi pagi rekan saya mengajak diskusi tentang masalah bootfs
di Solaris 11. Ceritanya rekan saya sedang melakukan recovery boot disk server Solarisnya yang bermasalah. Cara recovery-nya adalah dengan melakukan restore dari ZFS snapshot. Setelah boot servernya dengan menggunakan DVD Solaris, rekan saya sudah melakukan partisi root disk seperti ini :
partition> label [0] SMI Label [1] EFI Label Specify Label type[0]: 0 Ready to label disk, continue? y partition> p Current partition table (unnamed): Total disk cylinders available: 14087 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 14085 136.70GB (14086/0/0) 286678272 1 unassigned wu 0 0 (0/0/0) 0 2 backup wu 0 - 14086 136.71GB (14087/0/0) 286698624 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 unassigned wm 0 0 (0/0/0) 0 7 unassigned wm 0 0 (0/0/0) 0 partition> label [0] SMI Label [1] EFI Label Specify Label type[0]: 0 Ready to label disk, continue? y partition>
Harddisk yang dialokasikan sebagai boot device di Solaris 11 harus menggunakan label SMI. Tapi rekan saya keliru saat membuat rpool
, dia membuat rpool
tanpa mendefinisikan slice 0. Perintah yang dia pakai adalah seperti berikut ini :
root@solaris:/# zpool create -o version=33 -f -o failmode=continue -R /a -m legacy -o cachefile=/etc/zfs/zpool.cache rpool c3t0d0
Karena argumen yang dipakai hanya c3t0d0
(keseluruhan harddisk) hasil rpool
-nya menjadi seperti berikut ini :
root@solaris:/root# zpool status pool: rpool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 c3t0d0 ONLINE 0 0 0 errors: No known data errors root@solaris:/root#
Akibatnya rekan saya menemukan masalah saat mendefinisikan bootfs
, dia mendapatkan error seperti berikut ini :
root@solaris:/root# zpool set bootfs=rpool/ROOT/solaris rpool cannot set property for 'rpool': property 'bootfs' not supported on EFI labeled devices root@solaris:/root#
Ternyata walaupun di awal tadi harddisk c3t0d0
sudah diberi label SMI, labelnya berubah lagi karena penggunaan perintah zpool
yang kurang tepat. Pembuatan rpool
tanpa mendefinisikan slice, mengakibatkan Solaris melabel ulang harddisk tersebut dengan label EFI. Harddisk dengan label EFI ditandai dengan adanya partisi nomor 8, ini bisa dilihat dengan menggunakan perintah prtvtoc
seperti contoh berikut ini :
root@solaris:/root# prtvtoc /dev/rdsk/c3t0d0 * /dev/rdsk/c3t0d0 partition map * * Dimensions: * 512 bytes/sector * 286739329 sectors * 286739262 accessible sectors * * Flags: * 1: unmountable * 10: read-only * * Unallocated space: * First Sector Last * Sector Count Sector * 34 222 255 * * First Sector Last * Partition Tag Flags Sector Count Sector Mount Directory 0 4 00 256 286722656 286722911 8 11 00 286722912 16384 286739295 root@solaris:/root#
Di akhir diskusi saya sarankan untuk menghapus saja rpool
yang sudah dibuat. Setelah dihapus, saya sarankan untuk membuat rpool
dengan mendefinisikan harddisk lengkap sampai slice-nya (c3t0d0s0
). Contoh perintahnya seperti berikut ini :
root@solaris:/root# zpool create -o version=33 -f -o failmode=continue -R /a -m legacy -o cachefile=/etc/zfs/zpool.cache rpool /dev/dsk/c3t0d0s0 root@solaris:/root# root@solaris:/root# zpool status pool: rpool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 c3t0d0s0 ONLINE 0 0 0 errors: No known data errors root@solaris:/root#
Sampai saat ini saya tidak tahu apakah ada caranya supaya boot disk di mesin Sparc (dengan Solaris 11) bisa menggunakan harddisk dengan EFI label.