소개 ¶
이번에는 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이런식으로 되어 있습니다. LFS에서는 ext3를 사용했으므로 xfs부분을 ext3로 바꿔주시면 되겠죠? 자세한 정보는 man 5 fstab을 살펴보시기 바랍니다.
/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
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
http://www.linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt . 나중에 BLFS에서 필요로 하는 커널 설정이 있으니 다음을 참고하셔서 설치하시기 바랍니다:
http://www.linuxfromscratch.org/blfs/view/svn/longindex.html#kernel-config-indexmake 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
댓글 없음:
댓글 쓰기