Pemahaman Tentang Hard Disks dan File Systems

Hard disk merupakan penyimpanan yang bersifat non-volatile dengan media metallic platter. Piringan hard disk terdiri atas tiga area, yaitu tracks, cluster, dan sectors. Cluster merupakan kumpulan sectors. Sedangkan tracks merupakan konsentris dari platters dimana semua informasi tersimpan. Piringan harddisk dapat menyimpan informasi pada 2 sisinya. Pada hard disk terbaru menggunakan 4K sectors maksudnya setiap sector menyimpan data dengan ukuran 4096 byte atau 4 KB. Di harddisk ada yang disebut CHS atau cylinder-head-sector. CHS merupakan proses yang mengidentifikasi sektor individual di atas hard disk menurut posisinya di track. Misalnya sebuah hard disk memiliki 16.384 silinder, 80 heads, dan 63 sectors per track. Asumsikan sebuah sector berukuran 512 bytes. Maka total size dari hard disk = (16.384 silinder) x (80 heads) x (63 sectors/track) x (512 byte/sector) = 42.278.584.320 bytes = 42 GB.

sumber: ec-council

Berbeda dengan hard disk, solid-state drive atau SSD tidak menyimpan data dalam bentuk piringan tetapi menyimpan dalam sirkuit elektronik dengan semikonduktor. SSD lebih cepat namun lebih mahal jika dibandingkan dengan HDD. Selain itu kapasitas penyimpanannya masih terbatas atau tidak sebesar harddisk. Untuk menghubungkan media penyimpanan non-volatile seperti HDD atau SSD tentu saja diperlukan interface. Ada 5 tipe disk interface, yaitu:

  1. ATA/PATA (IDE/EIDE)
  2. Parallel ATA (PATA)
  3. Enhanced Integrated Drive Electronics (EIDE)
  4. Serial ATA (SATA)
  5. SCSI (Small Computer System Interface)
  6. Serial Attached SCSI
  7. PCIe SSD
  8. SSD Storage Protocol: NVMe SSD
Struktur logika dari hard disk adalah file system dan software dimana cluster menjadi logika unit penyimpanan terkecil. Ada 2 istilah dalam cluster, yaitu lost cluster dan slack cluster. Lost cluster adalah cluster yang dialokasikan namun sama sekali tidak digunakan sedangkan slcak cluster adalah sisa dari cluster yang tidak terkena penyimpanan. Misalkan cluster memiliki ukuran 2K sedangkan ukruan file hanya 1,5K artinya ada 0,5 cluster slack.
sumber: ec-counsil

Sektor pertama dari hard disk atau disebut sector zero merupakan lokasi dari sistem operasi pertama kali untuk memuat storage utama. Sektor tersebut biasa disebut MBR atau master boot record. MBR sendiri tidak berukuran besar biasanya hanya dikisaran 512 byte. Kemudian biasanya sebuah hard disk akan dipartisi menjadi minimal 2 bagian, yaitu primary partition dan extended partition. Pada primary partition itu terkandung sistem operasi. Nah, dalam disk partition itu ada BIOS Parameter Block yang merupakan data struktur di dalam sektor boot partisi. Pada sistem operasi windows ada yang disebut GUID atau globally unique identifier. GUID berfungsi mengidentifikasi perangkat spesifik baik itu berupa dokumen atau database atau user. Lalu di dalam hard disk tersebut berjalan file system. Perhatikan file system dari 3 sistem operasi terbesar:

  1. Windows
    • File Allocation Table (FAT)
    • New Technology File System (NTFS)
    • Encrypting File Sytems (EFS)
  2. Linux
    • Filesystem Hierarchy Standard (FHS)
    • Extended File System (ext)
    • Second Extended File System (ext2)
    • Third Extended File System (ext3)
    • Journaling File System
    • Fourth Extended File System (ext4)
  3. macOS
    • Hierarchical File System Plus (HFS+)
    • Apple File System (APFS)
Pemeriksaan atau examine dari file system dapat dilakukan dengan aplikasi Autopsy atau The Sleuth Kit (TSK), dan WinHex. Autopsi dapat digunakan untuk membuka file, sedangkan TSK dapat digunakan untuk membuat image dari hard disk, dan WinHex dapat digunakan untuk analisis secara hexadecimal. Contoh penggunaan WinHex adalah ketika format data yang sebelumnya merupakan data pdf lalu diganti menjadi jpg sehingga data tersebut jika di klik tidak akan terbaca oleh sebab itu perlu diganti formatnya. Nah, untuk mencari format yang tepat dapat dilakukan dengan melihat 4 hexadecimal yang ada di file tersebut melalui WinHex. Lalu angka hexadecimal tersebut dicari di google sehingga akan terlihat sebenarnya file tersebut memiliki format apa.

Windows Boot Process

Saat user pertama kali menekan tombol on pada sistem maka CPU mengirim sinyal Power Good ke motherboard dan memeriksa BIOS firmware dari komputer. BIOS memulai memeriksa diri sendiri (POST), yang mana akan memeriksa seluruh perangkat keras yang dibutuhkan sistem telah tersedia dan memuat semua pengaturan firmware dari penyimpanan non-volatile ke motherboard. Jika proses POST berhasil maka proses tersebut akan diintegrasikan dengan sistem. Setelah sistem boot disk terdeteksi valid maka komputer akan memindai boot disk dan memuat master boot record (MBR). Lalu MBR akan memicu Bootmgr.exe yang berlokasi di Windows loader (Winload.exe) di atas Windows boot partisi. Selanjutnya Windows loader akan memuat OS kernel dari ntoskrnl.exe. Ketika kernel mulai berjalan, Windows loader memuat hal.dll, boot-class device drivers membuat markah sebagai BOOT_START, dan SYSTEM registry bersarang di memory. Setelah kernel dilewati, boot process dilakukan ke Session Manager Process (SMSS.exe), yang akan memuat registry lainnya. Session Manager Process memicu Winlogon.exe yang akan menampilkan layar login dari user untu otorisasi dari user. Session Manager Process akan menginisiasi Service Control Manager yang akan memulai seluruh layanan. Saat user login maka windows akan membuat sebuah session untuk user tersebut. Terakhir Service Control Manager akan memulai explorer.exe serta menginisiasi Desktop Window Manager untuk user.

Pada komputer modern sistem BIOS digantikan dnegan UEFI atau Unified Extensible Firmware Interface. Di dalam sistem UEFI ada 5 fase, yaitu security phase (mengelola platform reset event dan mengatur sistem agar bisa menemukan, memvalidasi, menginstall, dan menjalankan pre-EFI initialization), pre-EFI initialization phase (menginisialisasi CPU, memory permanen, dan boot firmware volume, serta semuah hardware yang ditemukan di dalam sistem), driver execution environment phase (menginisialisasi seluruh memori fisik dari sistem, input/output, dan MIMO serta memulai dispatching DXE), boot device selection phase (bekerja bersama DXE untuk memeriksa jika device drivers membutuhkan verifikasi signature), dan runtime phase (sistem akan menghapus UEFI program dari memori dan transfer ke OS).

Macintosh Boot Process

Proses boot dimulai dengan aktivasi BootROM yang menginisialisasi sistem hardware dan memilih sebuah sistem operasi untuk dijalankan. Ketika power sistem Macintosh ditekan maka BootROM melakukan POST untuk menguji beberapa perangakat keras yang dibutuhkan saat startup. Jika digunakan perangkat berbasis PowerPC maka Open Firmware akan menginisalisasi hardware interface sedangkan jika digunakan perangkat berbasis intel maka EFI akan menginisialisasi hardware interface. Setelahnya sistem akan memilih sistem operasi, jika ada beberapa os maka user akan diminta untuk memilih. Ketika BootROM selesai dioperasikan maka kendali akan melewai BootX (PowerPC) atau boot.efi (Intel) boot loader yang berlokasi di /System/Library/CoreServices. Selanjutnya boot loader akan memuat kernel version yang berlokasi di /System/Library/Caches/com.apple.kernel.kernelcaches. Jika pre-linked kernel tidak didapatkan maka boot loader akan mencoba memuat mkext cache file yang mengandung seperangkat device drivers. Namun, jika mkext cache file juga tidak didapatkan maka boot loader akan mencari drivers di /System/Library/Extensions. Sekali driver esensial dimuat, boot loader akan memulai menginisiasi kernel, Mach, dan BSD data seperti I/O kit. Pada I/O kit akan digunakan untuk mencabangkan ke link yang memuat drivers ke kernel. Terakhir proses akan diluncurkan yang akan mengganti mach_init process, menjalankan startup items, dan menyiapkan sistem untuk user.

Linux Boot Process

Tahap pertama dalam booting linux adalah BIOS yang akan menginisialisasi hardware saat proses booting. BIOS mendapatkan informasi tersimpan di CMOS atau complementary metal-oxide semiconductor chip. Selama proses boot, BIOS melakukan POST untuk memastikan seluruh komponen perangkat keras beroperasi. Setelah POST berhasil, BIOS akan memulai untuk mencari drive atau disk yang mengandung sistem operasi. Jika pada device yang terdaftar tidak tersedia atau tidak bekerja. Drive akan melakukan boot hanya jika pada sektor pertama ada MBR. Tahap kedua adalah bootloader termasuk tugas memuat Linux kernel dan menginisialisasi RAM. Kernel akan memungkinkan CPU untuk mengakses RAM dan disk. Selanjutnya perangkat lunak pre-cursor yang merupakan  virtual file system sementara memanggil initrd image atau initial RAMdisk. Sekarang sistem bersiap untuk meluncurkan root file aktual. Kemudian mendeteksi device yang mengandung file system dan memuat modul yang dibutuhkan. Langkah terakhir dari bootloader adalah memuat kernel ke memory. Tahap terakhir dari boot Linux adalah kernel. Ketika kendali berpindah dari bootloader ke kernel maka virtual root file system dibuat oleh initrd image yang mengeksekusi program Linuxrc. Program ini menghasilkan file system sesungguhnya untuk kernel dan selanjutnya menghapus initrd image. Kemudian kernel akan mencari perangkat keras baru dan memuat setiap device drivers yang sesuai. Selanjutnya akan di mount ke root file system sesungguhnya dan melakukan init process. Proses ini dibaca pada /etc/inittab dan menggunakan file tersebut untuk memuat system daemons. Untuk mempersiapkan sistem hingga user dapat login serta mulai menggunakannya. Tipe bootloaders untuk Linux adalah Linux Loader (LILO) dan Grand Unified Bootloader (GRUB). Dengan menggunakan bootlaoder tersebut maka user diijinkan untuk memilih OS kernel saat boot time sedang berjalan.




ref:
ec-council

Komentar