17 Oktober 2017

Resize Partition di FreeBSD

Kita cek partisi yang ada di OS kita.
root:~# gpart show ada0
=>       34  312581741  ada0  GPT  (149G)
         34        128     1  freebsd-boot  (64K)
        162  304086912     2  freebsd-ufs  (145G)
  304087074    8388608     3  freebsd-swap  (4.0G)
  312475682     106093        - free -  (52M)
Kita akan menghapus free-space dan meresize ada0p2/ada0p3. deaktifkan dahulu swap-nya.
root:~# swapoff /dev/ada0p3
Matikan dahulu GEOM Safety variable lewat sysctl(8).
root:~# sysctl kern.geom.debugflags=16
Hapus partisi freebsd-swap (/dev/ada0p3) dahulu. Partisi ini hanya penyimpanan sementara saja, jd aman untuk dihapus.
root:~# gpart delete -i 3 ada0
Sekarang kita lakukan resize untuk partisi freebsd-ufs (/dev/ada0p2) dari 145G ke 147G. Untuk swap dikurangi 2G.
root:~# gpart resize -i 2 -a 4k -s 147G ada0
Bikin kembali swap-nya & aktifkan kembali partisinya.
root:~# gpart add -t freebsd-swap ada0
root:~# swapon /dev/ada0p3
Cek ulang partisi akhirnya & aktifkan kembali GEOM Safety variable.
root:~# gpart show ada0
=>       34  312581741  ada0  GPT  (149G)
         34        128     1  freebsd-boot  (64K)
        162  308281342     2  freebsd-ufs  (147G)
  308281504    4300271     3  freebsd-swap  (2.0G)

root:~# sysctl kern.geom.debugflags=0
kern.geom.debugflags: 16 -> 0
Agar size baru (/dev/ada0p2 - freebsd-ufs) dapat digunakan sesuai dengan size yang baru dibikin.
root:~# growfs /dev/ada0p2
Device is mounted read-write; resizing will result in temporary write suspension for /.
It's strongly recommended to make a backup before growing the file system.
OK to grow filesystem on /dev/ada0p2, mounted on /, from 145GB to 147GB? [Yes/No] yes
super-block backups (for fsck_ffs -b #) at:
 305234240, 306516736, 307799232

11 Oktober 2017

Recovery Bad-Sector Hardisk di FreeBSD

Terlebih dahulu backup data penting!
Cek bad sector hardisk.
root:~# smartctl -t long /dev/ada0
root:~# smartctl -l selftest /dev/ada0 | awk 'NR==7'
# 1  Extended offline    Completed: read failure       90%     36067         27292160
                                                                             ^^^^^^^^ (L)
Cek UFS file system.
root:~# dumpfs /dev/ada0p2 | egrep '^bsize'
bsize   32768   shift   15      mask    0xffff8000
        ^^^^^ (B)
Cari sector pertama partisi yg digunakan dalam hardisk.
root:~# fdisk -s /dev/ada0
/dev/ada0: 310101 cyl 16 hd 63 sec
Part        Start        Size Type Flags
   1:           1   312581807 0xee 0x00
                ^ (S)
Cari sector-size hardisk.
root:~# gpart list ada0 | tail -n 5
1. Name: ada0
   Mediasize: 160041885696 (149G)
   Sectorsize: 512
               ^^^ (M) 
   Mode: r2w2e3
Gunakan formula dibawah ini.
b = ((L - S) * M) / B)
L = 27292160
S = 1
M = 512
B = 32768

b = ((27292160 - 1) * 512) / 32768
b = 426439.984375 ~ 426439 (int)
Rubah permission agar bisa mode write.
root:~# sysctl kern.geom.debugflags=0x10
Untuk sector 426439 (bad sector) tidak akan digunakan oleh sistem untuk menyimpan data.
root:~# dd if=/dev/zero of=/dev/ada0 bs=32768 count=1 seek=426439
Untuk diagnosa isi sector 426439 (bad sector) bisa diredirect outputnya ke file.
root:~# dd if=/dev/ada0 of=hasil.txt bs=32768 count=1 skip=426439
Kembalikan permission ke semula.
root:~# sysctl kern.geom.debugflags=0
Cek kembali bad sector.
root:~# smartctl -t long /dev/ada0
Pastikan hasilnya -. Ini sample outputnya:
root:~# smartctl -l selftest /dev/ada0 | awk 'NR==7'
# 1  Extended offline    Completed without error       00%     36073         -
                                                                             ^
Jangan lupa setelah yakin tidak ada bad sector, recovery semua file lewat make world & restore file backup.