Jump to content

LFS: Virtual Kernel File Systems

From Haidhi Wiki
Revision as of 02:27, 17 April 2025 by SanzSkuy (talk | contribs)
✏️Note: JALANKAN SEMUA PERINTAH DI SINI DENGA ROOT

Kita akan masuk ke sistem LFS yang kita buat melewati chroot, seolah-olah kita sudah bisa boot ke LFS padahal masih di sistem hots. Tapi agar semua tools dan program di dalam LFS bisa berjalan normal, mereka perlu komunikasi dengan kernel Linux yang sedang berjalan. Masalahnya sistem LFS kita masih belum bisa berkomunikasi langsung dengan kernel. Di sini lah Virtual File Systems masuk

dimulai dengan membuat direktori dimana Virtual File Systems akan di-mount:

mkdir -pv $LFS/{dev,proc,sys,run}

Pada sistem Linux, direktori /dev berisi device nodes yang digunakan untuk berinteraksi dengan perangkat keras, seperti hard disk atau terminal. Biasanya, kernel Linux secara otomatis membuat dan mengelola device nodes ini dengan menggunakan sistem file virtual bernama devtmpfs. Ketika kernel mendeteksi perangkat baru, devtmpfs akan membuat device node yang sesuai di /dev. Namun, pada sistem Linux From Scratch (LFS), karena kita belum memiliki kernel atau udev (daemon untuk mengelola device nodes di ruang pengguna), kita tidak bisa langsung mengandalkan devtmpfs untuk mengelola /dev. Jika kernel host tidak mendukung devtmpfs, solusi yang digunakan adalah dengan melakukan bind mount terhadap direktori /dev dari sistem host ke $LFS/dev. Bind mount ini membuat isi dari /dev pada sistem host terlihat di dalam direktori $LFS/dev, sehingga aplikasi yang berjalan di dalam chroot environment pada LFS dapat mengakses device nodes yang diperlukan, meskipun sistem LFS belum sepenuhnya berjalan. Ini adalah langkah sementara hingga kernel LFS dan udev siap berfungsi secara mandiri.

mount -v --bind /dev $LFS/dev

sekarang mount sisanya

mount -vt devpts devpts -o gid=5,mode=0620 $LFS/dev/pts
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
mount -vt tmpfs tmpfs $LFS/run

Pada beberapa sistem host, /dev/shm adalah sebuah symbolic link yang mengarah ke direktori lain, biasanya /run/shm. Pada kasus seperti ini, direktori /dev/shm hanya perlu dibuat di dalam lingkungan chroot dengan izin yang tepat, karena sistem sudah memiliki tmpfs yang terpasang di /run/shm. Namun, pada sistem host lain, /dev/shm adalah titik mount untuk sistem file tmpfs. Dalam hal ini, ketika kita melakukan mount /dev di dalam lingkungan chroot, hanya direktori /dev/shm yang akan dibuat, tetapi tidak akan ada mount tmpfs secara otomatis di direktori tersebut. Untuk itu, kita perlu secara eksplisit melakukan mount sistem file tmpfs pada /dev/shm dalam lingkungan chroot agar dapat menggunakan shared memory untuk aplikasi yang membutuhkannya, seperti aplikasi yang melakukan operasi dengan memori sementara atau shared memory pada sistem Linux.

if [ -h $LFS/dev/shm ]; then
  install -v -d -m 1777 $LFS$(realpath /dev/shm)
else
  mount -vt tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm
fi