글 수 369
LFS 시스템 부팅하기 ¶
소개 ¶
이번에는 LFS 시스템을 부팅 가능하도록 만들 것입니다. 이번 장에서는 fstab 파일을 이용해 LFS 시스템을 위한 커널을 빌드하고 GRUB이라는 부트로더를 설치하여 컴퓨터를 부팅하였을 때 LFS 시스템을 선택할 수 있도록 만들 것입니다.
/etc/fstab 파일 만들기 ¶
/etc/fstab 파일은 시스템에 기본으로 마운트되게 하기 위해 필요한 파일로 다음과 같이 파일시스템 테이블을 만들어 줍니다.
cat > /etc/fstab << "EOF" # Begin /etc/fstab # file system mount-point type options dump fsck # order /dev/<xxx> / <fff> defaults 1 1 /dev/<yyy> swap swap pri=1 0 0 proc /proc proc nosuid,noexec,nodev 0 0 sysfs /sys sysfs nosuid,noexec,nodev 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 tmpfs /run tmpfs defaults 0 0 devtmpfs /dev devtmpfs mode=0755,nosuid 0 0 # End /etc/fstab EOF
<xxx>, <yyy>, <fff>는 시스템에 맞게 설정하시기 바랍니다. 필자의 경우는
/dev/sda1 /boot xfs noauto,noatime 1 2 /dev/sda3 / xfs noatime 0 1 /dev/sda2 none swap sw 0 0 /dev/cdrom /mnt/cdrom auto noauto,ro 0 0 /dev/fd0 /mnt/floppy auto noauto 0 0이런식으로 되어 있습니다. LFS에서는 ext3를 사용했으므로 xfs부분을 ext3로 바꿔주시면 되겠죠? 자세한 정보는 man 5 fstab을 살펴보시기 바랍니다.
MS-DOS와 Windows의 파일시스템(vfat, ntfs, smbfs, cifs, iso9660, udf)는 ASCII 문자가 아닌 파일 이름을 적절하게 변환하기 위해 "iocahrset"이라는 마운트 옵션이 필요합니다. 이것은 커널설정의 File System->Native Language Support가 설정되어 있어야 제대로 작동합니다."codpage"라는 옵션은 vfat, smbfs 파일시스템을 위해 필요한 것인데 여러분의 나라에서 사용되는 codepage 숫자를 설정해야하기 때문에 필요한 옵션입니다.
커널 설치하기 ¶
먼저 컴파일을 준비합니다.
make mrproper
메뉴화면으로 커널을 설정할 수 있습니다. 다음의 링크를 참고하여 커널 설정에 대한 일반적인 정보를 살펴보십시오: http://www.linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt . 나중에 BLFS에서 필요로 하는 커널 설정이 있으니 다음을 참고하셔서 설치하시기 바랍니다: http://www.linuxfromscratch.org/blfs/view/svn/longindex.html#kernel-config-index
make menuconfig make make modules_install
boot 파티션 마운트 후에 bzImage를 복사해줍니다.
cp -v arch/x86/boot/bzImage /boot/vmlinuz-3.5.2-lfs-7.2
System.map은 커널의 심볼 파일입니다. 이것은 모든 함수들에 대한 엔트리 포인트를 가지고 있습니다. 때문에 커널을 실행하려면 이 파일이 반드시 있어야합니다. 다음과 같이 System.map파일을 복사해줍니다
cp -v System.map /boot/System.map-3.5.2
나중을 위해 kernel 설정 파일을 복사해줍니다.
cp -v .config /boot/config-3.5.2
리눅스 커널 관련 문서를 설치해줍니다
install -d /usr/share/doc/linux-3.5.2 cp -r Documentation/* /usr/share/doc/linux-3.5.2
Linux 모듈 로드 순서 설정하기 ¶
/etc/modprobe.d/안에 있는 설정파일을 수정하여 모듈을 순서대로 로드할 수 있습니다. 이 순서를 잘 조정하면 원하는 순서대로 모듈을 로드할 수 있습니다.
install -v -m755 -d /etc/modprobe.d cat > /etc/modprobe.d/usb.conf << "EOF" # Begin /etc/modprobe.d/usb.conf install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true # End /etc/modprobe.d/usb.conf EOF
Grub 이용한 부트 프로세스 설정하기 ¶
설치하기전에:
만일 여러분이 현재 사용하고 있는 부트로더를 사용하고 싶다면 굳이 새로 GRUB을 설치할 필요는 없습니다. 대신 해당 부트로더의 설정파일을 잘 설정하여 커널을 로드하도록 만들어야 합니다.
grub-install /dev/sda
/boot/grub/grub.cfg 파일을 만들어줍니다.
cat > /boot/grub/grub.cfg << "EOF" # Begin /boot/grub/grub.cfg set default=0 set timeout=5 insmod ext2 set root=(hd0,2) menuentry "GNU/Linux, Linux 3.5.2-lfs-7.2" { linux /boot/vmlinuz-3.5.2-lfs-7.2 root=/dev/sda2 ro } EOF