by. fauzi dwi susanto
Post on 25-Feb-2016
62 Views
Preview:
DESCRIPTION
TRANSCRIPT
By. Fauzi Dwi Susanto
PengantarLFS (Linux From
Scratch)Praktikum Sistem Operasi
Tahun 2012Teknik Informatika - D
Tentukan versi Linux Ubuntu yang dipakai.
Karena versi ubuntu yang dipakai adalah versi 11.10, maka panduan LFS yang dipakai adalah : LFS-BOOK 7.1
Panduan LFS
Install Linux Ubuntu 11.10 pada VB anda Membuat partisi baru dengan ketentuan :
A. Partisi root yang diberi mount point / dan tipe file ext3 dengan kapasitas sesuai kebutuhan anda.
B. Partisi swap yang diberi mount point /swap dan tipe file swap dengan kapasitas sesuai kebutuhan anda.
Siapkan kopi dan sedikit hiburan agar tidak bosan serta ajak curhat teman disampingmu…!
Persiapan Awal
Setelah partisi baru telah dibuat, maka langkah selanjutnya adalah mengkopi file LFS ke sistem operasi Linux (paket-paket dan data-data LFS yang diperlukan).
Setelah dikopi, lakukan proses version-check untuk melihat versi sistem host nya, jika ada paket yang butuh diinstal dahulu maka install paket2 tersebut.
-- Merujuk LFS-BOOK 7.1 hal.xvii--
Masuk root dahulumke2fs -jv /dev/<xxx>
Inisialisasi partisi swapcd /tmprm -rfv e2fsprogs-1.42mkswap /dev/<yyy>
Mounting partisi baruexport LFS=/mnt/lfsmkdir -pv $LFSmount -v -t ext3 /dev/<xxx> $LFS
-- Merujuk LFS-BOOK 7.1 hal.12,13 dan 14--
Persiapan Partisi Baru (Chap.2)
Buat directory untuk tempat LFS anda, dan masuk sebagai rootmkdir -v $LFS/sourceschmod -v a+wt $LFS/sources
Setelah itu pindahkan paket-paket LFS anda pada directory tersebut melalui terminal atau secara manual.
-- Merujuk LFS-BOOK 7.1 hal.15-23 --
Packages and Patches (Chap.3)
Mengecek apakah variabel LFS sudah sesuai ketentuan dengan cara mengetikkan perintah seperti di bawah ini :
echo $LFS
Mengeset path dari variabel LFS dengan cara mengetikkan perintah seperti di bawah ini :export LFS=/mnt/lfs
Langkah selanjutnya yang dilakukan adalah membuat direktori LFS/tools dengan cara menggunakan perintah seperti di bawah ini :mkdir -v $LFS/tools
Langkah selanjutnya adalah dengan membuat simlink /tools ke host system dengan cara menggunakan perintah seperti di bawah ini :ln -sv $LFS/tools /
Persiapan Final (Chap.4)
Langkah selanjutnya yang dilakukan adalah menambahkan user baru untuk LFS dengan cara menggunakan perintah seperti di bawah ini :groupadd lfsuseradd -s /bin/bash -g lfs -m -k /dev/null lfs
Untuk mengganti password dilakukan dengan menggunakan perintah seperti di bawah ini :passwd lfs
Setelah itu diberikan full akses ke user baru tersebut dengan menggunakan perintah seperti di bawah ini :chown -v lfs $LFS/toolschown -v lfs $LFS/sources
Kemudian login sebagai user baru tersebut dengan menggunakan perintah seperti di bawah ini :su – lfs
Persiapan Final (Chap.4)
Membuat profil bash baru dengan cara menggunakan perintah di bawah ini :cat > ~/.bash_profile << "EOF"exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bashEOF
Membuat Bashrc file dengan cara menggunakan perintah di bawah ini :cat > ~/.bashrc << "EOF"set +humask 022.......................................
Membuat user profil dengan cara menggunakan perintah seperti di bawah ini :source ~/.bash_profile
Setting Environment
Binutils-2.22 – Instalisasi Tahap 11.Buat folder untuk build
mkdir -v ../binutils-buildcd ../binutils-build
2.Persiapkan Binutils untuk dikompilasi../binutils-2.22/configure \--target=$LFS_TGT --prefix=/tools \--disable-nls --disable-werror lalu make
3.Jika akan di build untuk x86_64, buat symlink ke tool chaincase $(uname -m) inx86_64) mkdir -v /tools/lib &&ln -sv lib /tools/lib64 ;;esac
4.Install paketmake install
Constructing a Temporary System (Chap.5)
GCC-4.6.2 – Instalasi tahap 1 Linux-3.2.6 API Headers Glibc-2.14.1
Constructing a Temporary System (Chap.5)
SPECS=`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/specs$LFS_TGT-gcc -dumpspecs | sed \ -e 's@/lib\(64\)\?/ld@/tools&@g' \ -e "/^\*cpp:$/{n;s,$, -isystem /tools/include,}" > $SPECS echo "New specs file is: $SPECS"unset SPECS
Binutils-2.22 - Pass 2 GCC-4.6.2 - Pass 2 Tcl-8.5.11 Expect-5.45 Dan seterusnya..,,,,Lakukan compile dan install paket secara
urut, jangan sampai ada yang terlewatkan.
Adjusting the Toolchain
Remove symbols :strip --strip-debug /tools/lib/*strip --strip-unneeded /tools/{,s}bin/*
Remove the documentationrm -rf /tools/{,share}/{info,man,doc}
-- Next slide to Chapter 6 --
Stripping
Creating directories onto which the file systems will be mountedmkdir -v $LFS/{dev,proc,sys}
Creating Initial Device Nodesmknod -m 600 $LFS/dev/console c 5 1mknod -m 666 $LFS/dev/null c 1 3
Mounting and Populating /devmount -v --bind /dev $LFS/dev
Mounting Virtual Kernel File Systemsmount -vt devpts devpts $LFS/dev/ptsmount -vt tmpfs shm $LFS/dev/shmmount -vt proc proc $LFS/procmount -vt sysfs sysfs $LFS/sys
Installing Basic System Software (Chap. 6)
Entering the Chroot Environmentchroot "$LFS" /tools/bin/env -i \ HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \ PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \ /tools/bin/bash --login +h
Creating Directoriesmkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib,mnt,opt,run}mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}install -dv -m 0750 /rootinstall -dv -m 1777 /tmp /var/tmpmkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}mkdir -pv /usr/{,local/}share/{doc,info,locale,man}mkdir -v /usr/{,local/}share/{misc,terminfo,zoneinfo}mkdir -pv /usr/{,local/}share/man/man{1..8}for dir in /usr /usr/local; do ln -sv share/{man,doc,info} $dirdonecase $(uname -m) in x86_64) ln -sv lib /lib64 && ln -sv lib /usr/lib64 ;;esacmkdir -v /var/{log,mail,spool}ln -sv /run /var/runln -sv /run/lock /var/lockmkdir -pv /var/{opt,cache,lib/{misc,locate},local}
Installing Basic System Software (Chap. 6)
Creating Essential Files and Symlinksln -sv /tools/bin/{bash,cat,echo,pwd,stty} /binln -sv /tools/bin/perl /usr/binln -sv /tools/lib/libgcc_s.so{,.1} /usr/libln -sv /tools/lib/libstdc++.so{,.6} /usr/libsed 's/tools/usr/' /tools/lib/libstdc++.la > /usr/lib/libstdc++.laln -sv bash /bin/sh
Presence of /etc/mtabtouch /etc/mtab
Create the /etc/passwd --- merujuk LFS-BOOK 7.1 hal 80 --- Create the /etc/group --- merujuk LFS-BOOK 7.1
hal 81 ---
Installing Basic System Software (Chap. 6)
To work user name and group nameexec /tools/bin/bash --login +h
Initialize the log files and give them proper permissionstouch /var/run/utmp /var/log/{btmp,lastlog,wtmp}chgrp -v utmp /var/run/utmp /var/log/lastlogchmod -v 664 /var/run/utmp /var/log/lastlogchmod -v 600 /var/log/btmp
Next, Linux-3.2.6 API Headers Man-pages-3.35 Glibc-2.14.1
Installing Basic System Software (Chap. 6)
Create link to its counterpart in / tools/ $ (gcc - dumpmachine)/ binmv -v /tools/bin/{ld,ld-old}mv -v /tools/$(gcc -dumpmachine)/bin/{ld,ld-old}mv -v /tools/bin/{ld-new,ld}ln -sv /tools/bin/ld /tools/$(gcc -dumpmachine)/bin/ld
A sed commandgcc -dumpspecs | sed -e 's@/tools@@g' \
-e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \ -e '/\*cpp:/{n;s@$@ -isystem /usr/include@}' > \ `dirname $(gcc --print-libgcc-file-name)`/specs
Re-adjusting the Toolchain
Sanity checksecho 'main(){}' > dummy.ccc dummy.c -v -Wl,--verbose &> dummy.logreadelf -l a.out | grep ': /lib‘
Make sure that we're setup to use the correct startfiles dllgrep -o '/usr/lib.*/crt[1in].*succeeded' dummy.loggrep -B1 '^ /usr/include' dummy.loggrep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g‘grep "/lib.*/libc.so.6 " dummy.loggrep found dummy.log
Clean up the test filesrm -v dummy.c a.out dummy.log
Re-adjusting the Toolchain
Zlib-1.2.6 File-5.10 Binutils-2.22 GMP-5.0.4 MPFR-3.1.0 MPC-0.9 GCC-4.6.2 Sed-4.2.1 Bzip2-1.0.6 Ncurses-5.9 …………............…catat paket yg sudah terinstall bila perlu Vim-7.3
Next Install Paket
Exit from chrootlogout
Entering the Chroot Environmentchroot $LFS /tools/bin/env -i \HOME=/root TERM=$TERM PS1='\u:\w\$ ' \PATH=/bin:/usr/bin:/sbin:/usr/sbin \/tools/bin/bash –login
The binaries and libraries can be safely stripped/tools/bin/find /{,usr/}{bin,lib,sbin} -type f \
-exec /tools/bin/strip --strip-debug '{}' ';'
Stripping Again
When reentering the chroot environment after exiting, use the following modified chroot commandchroot "$LFS" /usr/bin/env -i \ HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \ PATH=/bin:/usr/bin:/sbin:/usr/sbin \ /bin/bash –login
Cleaning Up
Creating stable names for network interfacesfor NIC in /sys/class/net/* ; do INTERFACE=${NIC##*/} udevadm test --action=add $NICdone
cat /etc/udev/rules.d/70-persistent-net.rules
Creating Network Interface Configuration Filescd /etc/sysconfig/cat > ifconfig.eth0 << "EOF"ONBOOT=yesIFACE=eth0……………
Setting Up System Bootscripts (Chap. 7)
Creating the /etc/resolv.conf Filecat > /etc/resolv.conf << "EOF"# Begin /etc/resolv.confdomain <Your Domain Name>nameserver <IP address of your primary nameserver>nameserver <IP address of your secondary nameserver># End /etc/resolv.confEOF
Create the /etc/hostscat > /etc/hosts << "EOF"# Begin /etc/hosts (no network card version)127.0.0.1 <HOSTNAME.example.org> <HOSTNAME> localhost# End /etc/hosts (no network card version)EOF
Setting Up System Bootscripts (Chap. 7)
CD-ROM symlinksudevadm test /sys/block/hddsed -i -e 's/"write_cd_rules"/"write_cd_rules mode"/' \/lib/udev/rules.d/75-cd-aliases-generator.rules
Dealing with duplicate devicesudevadm info -a -p /sys/class/video4linux/video0
Creating Custom Symlinks to Devices
Install LFS-Bootscripts-20120229
Configuring the setclock Scriptcat > /etc/sysconfig/clock << "EOF"# Begin /etc/sysconfig/clockUTC=1# Set this to any options you might need to give to hwclock, # such as machine hardware clock type for Alphas.CLOCKPARAMS=# End /etc/sysconfig/clockEOF
Setting Up System Bootscripts (Chap. 7)
Configuring the Linux Consolecat > /etc/sysconfig/console << "EOF"# Begin /etc/sysconfig/consoleUNICODE="1"KEYMAP="de-latin1"KEYMAP_CORRECTIONS="euro2"LEGACY_CHARSET="iso-8859-15"FONT="LatArCyrHeb-16 -m 8859-15"# End /etc/sysconfig/consoleEOF
Setting Up System Bootscripts (Chap. 7)
List of all locales supported by Glibclocale –a
This results in a final locale setting of “en_GB.ISO-8859-1”LC_ALL=<locale name> locale charmapLC_ALL=<locale name> locale languageLC_ALL=<locale name> locale charmapLC_ALL=<locale name> locale int_curr_symbolLC_ALL=<locale name> locale int_prefix
Once the proper locale settings have been determined, create the / etc/ profile file : -- merujuk hal 215 –
Creating the /etc/inputrc File : -- merujuk hal 216 –
The Bash Shell Startup Files
Making the LFS System Bootable (Chap. 8)
Creating the /etc/fstab File
Isi file system dan type sesuai dengan partisi laptop anda.
hdparm -I /dev/sda | grep NCQ
Linux-3.2.6 (Kernel)make mrpropermake LANG=<host_LANG_value> LC_ALL= menuconfigmakemake modules_installcp -v arch/x86/boot/bzImage /boot/vmlinuz-3.2.6-lfs-7.1cp -v System.map /boot/System.map-3.2.6cp -v .config /boot/config-3.2.6install -d /usr/share/doc/linux-3.2.6cp -r Documentation/* /usr/share/doc/linux-3.2.6
Making the LFS System Bootable (Chap. 8)
Creating a GRUB boot floppy diskette as a backupcd /tmp &&grub-mkrescue --output=grub-img.iso &&xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso
GRUB Naming Conventionsgrub-mkdevicemap --device-map=device.mapcat device.map
Using GRUB to Set Up the Boot Process
Install the GRUB files into / boot/ grub:grub-install /dev/sda
Creating the Configuration Filecat > /boot/grub/grub.cfg << "EOF"# Begin /boot/grub/grub.cfgset default=0set timeout=5insmod ext2set root=(hd0,2)menuentry "GNU/Linux, Linux 3.2.6-lfs-7.1" { linux /boot/vmlinuz-3.2.6-lfs-7.1 root=/dev/sda2 ro}EOF
Setting Up the Configuration
WARNING…!!!!!!!!!!!!!! Hati – hati pada saat akan tahap reboot ..!!!
Rebooting the Systemlogout
Then unmount the virtual file systemsumount -v $LFS/dev/ptsumount -v $LFS/dev/shmumount -v $LFS/devumount -v $LFS/procumount -v $LFS/sys
The End (Chap. 9)
Unmount the LFS file system itself :umount -v $LFS
If multiple partitions were created, unmount the other partitions before unmounting the main one, like thisumount -v $LFS/usrumount -v $LFS/homeumount -v $LFS
Now, reboot the system with :shutdown -r now
The End (Chap. 9)
Contoh Hasil Grub After Reboot
Dear Praktikan SO TIF-D : 1. Project LFS ini waktu pengumpulannya diperpanjang
sampai dengan akhir UAS2. Hasil akhir project LFS ini didemokan setelah UAS
secara kelompok ke masing-masing dosen pengampu
3. Untuk dokumentasinya adalah masing-masing anggota kelompok (individu)
4. Sebelum demo ke dosen kpp harus sudah di ttd oleh koas SO dan laporan lengkap yang sudah disusun secara urut sesuai dengan ketentuan penjilidan
5. Ketentuan dan format penjilidan akan diupload minggu depan
Mohon Diperhatikan ..!!!!
Terima Kasih ….
Selamat Mengerjakan !!!!
top related