여러분은 사고를 피하지 못한다. 그리고 만일 그 사고가 리눅스 시스템에서 발생한다면, 마스터 부트 레코드 (MBR) 또는 LILO(리눅스 부트 로더)에 손상을 입히게 될 것이다. 하드 디스크 실패로 인해 리눅스가 기동되지 않을 경우도 있을 수 있다. 만일 여러분이 뜻하지 않게 하드 디스크의 파티션을 다시 나누어야 하거나 리눅스 컴퓨터에 Windows 98/NT와 같은 또다른 운영체제를 추가로 설치한다면, LILO는 또한 실패할 수 있을 것이다.
이 문서는 여러분한테 LILO 또는 리눅스에 관한 수천 쪽의 문서를 애써 보지 않더라도 긴급히 복구 가능하도록 몇 가지 아이디어, 팁, 속성 안내서(quick guide)를 제공한다.
어떠한 Windows 95/NT/2000, OS/2, BeOS 또는 리눅스 박스라도 복구하기 위해서는 한 장의 플로피 디스크에 맞춰진 초소형 리눅스(tiny linux)를 필요로 할 것이다. 아래에 제시된 초소형 플로피 리눅스의 목록을 보라 -
다음 섹션에 있는 Tomsrtbt 플로피를 사용하여 로그인 한 후 /etc/fstab, /etc/lilo.conf와 같은 중요한 시스템 파일들을 백업하는 것은 바람직한 착상이다. 이것은 충돌 상황 또는 어떤 문제가 시스템 파일에 발생한 동안에 매우 유용할 수 있다.
bash# cp /etc/fstab /etc/fstab.orig bash# cp /etc/lilo.conf /etc/lilo.conf.orig bash# cp /etc/hosts /etc/hosts.orig bash# cp /etc/hosts.allow /etc/hosts.allow.orig bash# cp /etc/hosts.deny /etc/hosts.deny.orig bash# cp /etc/inetd.conf /etc/inetd.conf.orig bash# cp /etc/inittab /etc/inittab.orig bash# cp /etc/networks /etc/networks.orig |
LILO 또는 시스템 실패로부터 복구하기 위하여 다음의 조치 단계를 따르라.
사태 1: 만일 여러분의 시스템이 기동되지 않으면 -
tomsrtbt 플로피 � 또는 MuLinux 플로피를 구하라. (참고로 1.1절를 보라.) tomsrtbt 플로피로 기동하라. 파티션을 찾기 위해 fdisk를 사용하라. 이대로 하여 루트 파티션을 분간하도록 시도하라 -
bash# fdisk /dev/hda bash# mkdir /test bash# mount /dev/hda1 /test bash# ls /test 여러분은 이처럼 루트 파티션 목록을 보아야 한다 - bin fd lib mnt proc sbin usr boot dev etc home lost+found opt root tmp var |
필자의 경우는, 루트 파티션이 /dev/hda4이다. 이것이 아래의 예제에서 사용된다.
bash# mkdir /hda4 bash# mount /dev/hda4 /hda4 bash# cat /hda4/etc/fstab fstab의 출력을 읽고, fstab 파일대로 파티션을 마운트하라. 아래를 보라 - bash# mount /dev/hda5 /hda4/boot bash# mount /dev/hda6 /hda4/usr bash# mount /dev/hda7 /hda4/var bash# mount /dev/hda8 /hda4/opt bash# mount /dev/hda9 /hda4/root bash# mount /dev/hda10 /hda4/home |
(/hda4/etc/fstab가 아닌) /etc/fstab를 편집하고, (여기에 제공된 샘플 코드를) 넣어라 -
/dev/hda4 /hda4 ext2 defaults 1 1 /dev/hda5 /hda4/boot ext2 defaults 1 1 /dev/hda6 /hda4/usr ext2 defaults 1 1 /dev/hda7 /hda4/var ext2 defaults 1 1 /dev/hda8 /hda4/opt ext2 defaults 1 1 /dev/hda9 /hda4/root ext2 defaults 1 1 /dev/hda10 /hda4/home ext2 defaults 1 1 /dev/hda11 /hda4/win95part vfat defaults 1 1 필자의 컴퓨터에서, hda4는 리눅스 루트 파티션을 수용하고, hda5는 boot 파티션을 가지고, hda11은 windows 95 vfat 시스템을 가진다. bash# mkdir /hda4/win95part bash# mount /hda4/win95part 그리고, fsck 또는 e2fsck 명령어를 사용하여 시스템을 복구하라. bash# man fsck bash# man e2fsck |
사태 2: 만일 LILO가 동작하지 않으면..
상기한 사태1을 따르라. 만일 그 조치가 실패하면 이 조치를 따르라. 이제 여러분은 /hda4를 이미 마운트 했어야 하고, /etc/fstab 파일을 생성해 두어야 한다.
bash# mount -a bash# chroot /hda4 /sbin/lilo -q bash# man chroot bash# chroot /hda4 /sbin/lilo |
bash# man lilo bash# /sbin/lilo -r /hda4 |
사태 3: 만일 LILO가 동작하지 않으면..
만일 사태 1과 2가 실패한다면, 만일 여러분이 (설치 동안 또는 'man mkbootdisk'를 사용함으로써) 'mkbootdisk'로 부트 디스크를 만들었다면, 그것으로 기동하여 여러분의 파티션을 복구하라. mkbootdisk는 mkbootdisk*.rpm 패키지에 있고, 여러분은 이것을 반드시 설치하여야 한다. 아니면, �에서 Linux/NT/Windows/DOS/Mac을 위한 부트 디스크를 구하라. 다른 선택은 이렇다 - 설치 Linux-CDROM을 찾아내라. 거의 모든 리눅스 배포본은 그 CD에 구조용(rescue) 디스크의 이미지를 제공한다. 리눅스에서는, 구조용 플로피 디스크를 생성하기 위해 "dd if=/cdrom/disks/rescue of=/dev/fd0"를 사용하라. 도스에서는 (리눅스 CD에 포함된) rawrite.exe를 사용하여 "rawrite 이미지-명칭 a:"를 하라.
사태 4: 상기한 사태 1, 2, 3이 실패하고, 부트 디스크를 가지지 못한 경우
만일 여러분이 리눅스를 실행 중인 또다른 컴퓨터를 가진다면, root로 로그인하여 수행하라 -
주의: 만일 여러분이 bzImage(예를 들어, bzImage-2.4.4)로서 여러분 자신의 커널을 컴파일 한다면, 다음과 같이 vmlinuz-2.4.4에 대한 하드 링크(hard link)를 생성하여야만 한다. (vmlinuz 명칭에서 z를 주의하라. vmlinux가 아니다.) 만일 여러분이 이것을 제대로 하지 못하면, mkbootdisk 명령은 실패할 것이다.
bash# cd /boot bash# ls -l vmlinuz* bash# ln /boot/bzImage-2.4.4 /boot/vmlinuz-2.4.4 |
bash$ man mkbootdisk bash# cp /etc/lilo.conf /etc/lilo-original.conf |
bash$ mkbootdisk --device /dev/fd0 2.2.12-20 |
사태 5: 이는 가장 나쁜 시나리오다. 원컨대, 여러분이 결코 이런 사태에 처하지 않으면 좋겠다. 1부터 4까지의 사태는 대부분의 경우에 이용할 것이다. 그러나, 단지 만일에 대비하여, 위의 사태 1,2,3,4 모두가 실패하는 경우에 -
조치 1: and mount the partitions and backup the root partition to another partition having disk space with comamnds - tomsrtbt를 기동하라. (참고로 1.1절를 보라.) 파티션을 마운트 하고, 다음 명령어로 루트 파티션을 디스크 공간을 가지는 또다른 파티션에 백업한다 -
/etc/fstab을 편집하고, (여기에 제공된 샘플 코드를) 넣어라 (여러분의 디스크 레이아웃에 맞도록 반드시 변경하여야 한다) - /dev/hda4 /hda4 ext2 defaults 1 1 /dev/hda11 /b1 vfat defaults 1 1 bash$ mkdir /hda4; mount /hda4 bash$ mkdir /b1; mount /b1 bash$ cd / bash$ df 그리고, 루트 파티션을 tar로 백업하기 위해 /b1에 충분한 디스크 공간이 있는지 알아 보라. bash$ tar cvf /b1/root-hda4.tar /hda4 |
조치 2: 리눅스 cdrom을 넣고, 재기동(reboot)하고, /dev/hda4에 레드햇 리눅스를 설치한다. (그러나 어떠한 여분의(extra) 패키지도 설치하지는 말아야 한다. 매우 제한된 수의 최소 조건으로 루트, 부트 시스템, LILO 관리자만 설치하는 것이 필요하다.) 이는 또한 하드 디스크에 LILO를 설치할 것이다. 이제 리눅스를 기동하여 root로 로그인하고, 명령을 내려라 -
bash$ man mkbootdisk bash# cp /etc/lilo.conf /etc/lilo-original.conf |
bash$ mkbootdisk --device /dev/fd0 2.2.12-20 bash# cp /etc/lilo-original.conf /etc/lilo.conf |
여러분은 장차 생길 수 있는 문제점을 막기 위하여 다음과 같은 경계 방책을 취해야만 한다.
여러분은 때때로 그리고 여러분이 파티션을 변경할 때마다 긴급 부트 디스크를 꼭 만들어야 한다. 공 디스크를 넣고, 이렇게 하라 -
bash$ man mkbootdisk mkbootdisk는 mkbootdisk*.rpm 패키지에 있고, 여러분은 이것을 반드시 설치하여야 한다. bash$ mkbootdisk --help bash$ mkbootdisk --device /dev/fd0 2.2.12-20 |
여러분은 tomsrtbt 부트 플로피를 반드시 가까이에 두어야 한다. �를 들르라. (참고로 1.1절를 보라.)
�을 들르라.
/root 및 /boot 디렉토리를 백업하라. Tomsrtbt 플로피를 기동하라. (참고로 1.1절를 보라.) 그런 다음에
bash# vi /etc/fstab 그리고, 다음 내용들을 넣어라 - /dev/hda1 /a1 vfat defaults 1 1 /dev/hdb1 /b1 vfat defaults 1 1 필자의 경우에, hda1은 리눅스 루트 파티션 '/'을 가졌다. bash# cd / bash# tar cvf /b1/linux-root-partition-hda1.tar a1 bash# tar cvf /b1/linux-boot-partition-hda1.tar a1/boot |
여러분은 MS DOS 프롬프트에서 DOS 명령어를 내려서 부트 섹터를 DOS 부트 로더로 대체할 수 있다:
FDISK /MBR |
LILO를 없애는(uninstalling) 다른 방법에 대해서 /usr/doc/lilo*에 있는 linux에 관한 LILO 문서들을 보라. 그리고 'man lilo'를 또한 보라.
/etc/lilo.conf를 변경한 후에 변경 내용을 유효하도록 만들기 위해 반드시 lilo를 실행하여야 한다. 초보자들에 의해 저질러지는 너무나 흔히 있는 실수이다. 타자하라 -
bash# lilo -v -v -v |