USB 메모리로 부팅하여 Debian 설치하기 (간단하게)
USB 메모리로 부팅하여 Debian을 설치하려면 다음과 같이 합니다.
http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media/
위의 hd-media 디렉토리에서 boot.img.gz을 내려 받은 후, 다음과 같이 합니다.
# zcat boot.img.gz > /dev/sdc
이제 USB 메모리를 mount한 후에, 데비안 네트워크 설치 ISO, 혹은 비지니스카드 ISO를 USB 메모리에 추가로 복사하면 됩니다.
이제 이 USB 메모리로 부팅할 수 있습니다.
이렇게 하면 다른 부팅 설정 없이 USB 메모리로 부팅할 수 있으나, 만들어진 부팅 USB 메모리는 USB 메모리 전체를 사용하지 않은 상태입니다.
USB 메모리로 부팅하여 Debian 설치하기 (직접 만들기)
- 간단하게 boot.img.gz을 USB 메모리에 쓰면 부팅이 가능하나, USB 메모리를 모두 사용하지 않게 됩니다. 직접 파티션을 만들어 작업을 해야 합니다.
아래의 USB-Zip 또는 USB-HDD로 부팅하게 만든후 debian 설치 파일을 복사합니다.
- USB 메모리를 집드라이브 USB-Zip으로 만들기
USB 메모리로 부팅할 때, 일부 오래된 컴퓨터에서 USB-HDD로는 부팅하지 못하고 USB-Zip만 부팅이 가능한 경우가 있습니다.
집드라이브는 64개의 헤드, 32개의 섹터로 구성되어 있고 파티션 번호가 4입니다.
따라서, USB 메모리를 집드라이브로 인식하려면 64개의 헤드, 32개의 섹터로 구성되어야 하며, 메모리 크기에 맞게 실린더를 정해야 합니다.
데비안에서 패키지 syslinux를 설치하면 mkdiskimage를 사용할 수 있습니다. 사용방법은 다음과 같습니다.
# mkdiskimage -4 /dev/sdc 0 64 32
/dev/sdc는 mount되지 않은 USB 메모리로 파티션이 아닌 USB 메모리 전체를 의미합니다. 하드디스크와 혼동하지 않게 미리 # fdisk -l 로 이름을 확인합니다.
-4는 파티션 4번으로 설정하게 합니다. (이 파티션으로 부팅 설정 됩니다.)
0은 메모리에 맞게 실린더를 정하는데 프로그램이 자동으로 정해줍니다.
64는 64개의 헤드를, 32는 32개의 섹터를 의미합니다.
이렇게 만들어진 USB메모리에 부트 로더를 설치합니다. mount되지 않은 상태에서 sylinux를 실행합니다.
# syslinux /dev/sdc4
USB 메모리 루트에 ldlinux.sys가 생깁니다.
-
USB 메모리를 하드 디스크 USB-HDD로 만들기
# fdisk /dev/sdc
여기에서 FAT16 또는 FAT32로 파티션을 만들고 Boot를 설정하여 부팅할 수 있게 합니다.mkdosfs은 패키지 dosfstools 에 있습니다. 도스용으로 포맷합니다.
# mkdosfs /dev/sdc1
syslinux로 부트로더를 설치합니다. (패키지 syslinux와 mtools가 설치 되어 있지 않으면 설치합니다.)
# syslinux /dev/sdc1
USB 메모리 루트에 ldlinux.sys가 생깁니다.
- 데비안 설치 파일 복사하기
위에서 USB 메모리를 USB-Zip 또는 USB-HDD로 부팅가능하게 만든 후 debian 설치 파일을 USB 메모리에 옮깁니다.
먼저 USB 메모리를 mount합니다.
http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media/
위에서 boot.img.gz을 내려 받은 후 압축을 풉니다.
$ wget http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media/boot.img.gz
$ gunzip boot.img.gz
# mount -o loop boot.img /media/tmp
기존 USB 메모리의 ldlinux.sys를 이름 변경한 후 파일을 복사합니다.
# mv /media/disk/ldlinux.sys /media/disk/ldlinux.old
# cp -r /media/tmp/* /media/disk
이제 USB 메모리를 mount한 후에, 데비안 네트워크 설치 ISO, 혹은 비지니스카드 ISO를 USB 메모리에 추가로 복사하면 됩니다.
이제 이 USB 메모리로 부팅할 수 있습니다.
참고)
http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/hd-media/ 에서 boot.img.gz을 풀어서 옮기지 않고 vmlinuz 와 initrd.gz만 USB 메모리에 옮기고, syslinux.cfg를 USB 메모리에 다음의 내용을 입력후 저장할 수 있습니다.
default vmlinuz
append initrd=initrd.gz
이어 데비안 네트워크 설치 ISO, 혹은 비지니스카드 ISO를 USB 메모리에 추가로 복사하면 USB 메모리로 Debian을 설치할 수 있으나 설치 초기 화면을 볼 수 없어
Gnome Desktop으로만 설치되며, 복구용으로 활용할 수 없습니다.
이렇게 설치만 할 수 있게 USB 메모리를 만들려면
http://ftp.nl.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/debian-installer/i386/
위의 neboot 디렉토리의 initrd.gz 과 linux를 USB 메모리에 옮긴 후 syslinux.cfg를
다음과 같이 합니다.
default linux
append initrd=initrd.gz
이렇게 하면 굳이 데비안 네트워크 설치 ISO, 혹은 비지니스카드 ISO를 복사할 필요가 없습니다.
- SYSLINUX는 MS-DOS/Windows FAT 파일시스템에서 리눅스로 부팅할 수 있게 하는 boot loader입니다. FAT 파일 시스템에 설치하면 boot sector를 교체하고 root directory에 ldlinux.sys를 설치합니다. SYSLINUX는 처음 리눅스를 설치하려 하거나, 복구용등으로 활용됩니다.
- SYSLINUX로 처음 부팅하면 화면에 boot: 만 보입니다. 여기에서 직접 커널 파일명을 입력을 합니다. 화면에 boot: 만 보이면 당황하게 되므로, 다음 차례로 자동으로 진행하거나 또는 화면을 보고 선택할 수 있게 해야 합니다.
이러한 설정은 syslinux.cfg에서 하게 됩니다.
SYSLINUX가 부팅할 때 syslinux.cfg를 다음 차례대로 읽어 드립니다. 먼저 보이는 syslinux.cfg 설정대로 진행합니다.
/boot/syslinux/syslinux.cfg
/syslinux/syslinux.cfg
/syslinux.cfg
syslinux.cfg 파일 안에 여러 설정 항목이 있습니다. 특별하게 / 또는 \로 디렉토리를 지정하지 않으면 syslinux.cfg을 읽은 디렉토리에서 먼저 찾게 됩니다.
syslinux.cfg 안에 default 항목이 있으면 boot: 화면에 default 항목이 자동으로 입력된것 처럼 다음 차례로 진행하게 됩니다. 따로 설정하지 않으면 default 항목이 기본적으로 linux로 설정되어 있습니다. default 항목을 menu.c32 (또는 vesamenu.C32)로 하여 메뉴 구성을 할 수 있습니다.
- Debian(lenny)의 boot.img.gz의 syslinux.cfg은 다음과 같습니다.
# D-I config version 1.0
include menu.cfg
default vesamenu.c32
prompt 0
timeout 0
include : 설정을 다른 파일에 따로 기록하고 읽어 드립니다. 여기서는 menu.cfg을 읽습니다.
default : 부팅하면서 화면에 boot: 보일 때 vesamenu.c32를 입력한 것으로 간주합니다.
prompt : 부팅하면서 화면에 boot:을 감춥니다.
timeout : 부팅하면서 곧바로 실행합니다.
여기서는 부팅하면서 곧바로 감추어진 boot: 에 vesamenu.c32를 입력한 것이 됩니다. 따라서 이미 읽어드린 menu.cfg을 바탕으로 화면에 메뉴를 보여줍니다.
내 입맛에 맞게 다음과 같이 메뉴를 추가하였습니다. 또한 필요한 파일 chain.c32를 USB 메모리에 복사하였습니다.
$ cp /usr/lib/syslinux/chain.c32 /media/disk/
syslinux.cfg에 다음과 같이 바꾸었습니다.
# D-I config version 1.0
include menu.cfg
default vesamenu.c32
prompt 0
timeout 0
LABEL myinstall
MENU LABEL Gnome Install
KERNEL /netboot/linux
APPEND initrd=/netboot/initrd.gz
LABEL hd00
MENU LABEL 1st hard drive
KERNEL chain.c32
APPEND hd0
LABEL hd12
MENU LABEL 2nd Partition from 2nd Hard
KERNEL chain.c32
APPEND hd1 2
LABEL : 부팅시 화면에 boot:이 보일 경우 직접 입력할 이름을 기록합니다.
MENU LABLE : 메뉴 화면에서 보여줄 메뉴 이름입니다.
KERNEL : 커널파일 이름을 기록합니다. chain.c32로 다른 부트로더로 변경할 수 있습니다.
APPEND : 커널에 추가할 옵션을 기록합니다.
hd0 : 첫번째 하드 디스크에서 부팅합니다. 즉 첫번 째 하드 디스크의 MBR로 부팅하는 것입니다. hd0 0 과 같습니다.
hd1 2 : 두번째 하드 디스크의 두번 째 파티션에서 부팅하는 것입니다.
- MBR 오류로 부팅이 안되면 다음과 같이 합니다.
# install-mbr /dev/sdb
install-mbr은 패키지 mbr에 있습니다.
- install-mbr로 윈도우 부팅시 MBR 오류로 부팅이 안되면 다음과 같이 활용합니다. # install-mbr -r /dev/sda
MBR 지우는 명령입니다.