4.3. USB 메모리 부팅에 필요한 파일 준비하기

USB 메모리를 준비하려면 GNU/리눅스가 동작하고 USB를 지원하는 시스템이 필요합니다. 최신의 GNU/리눅스 시스템에서는 USB 메모리를 연결하면 자동으로 인식합니다. 자동으로 인식이 안 된다면 usb-storage 커널 모듈을 읽어들였는지 확인하십시오. USB 메모리를 연결하면 그 장치는 /dev/sdX에 연결됩니다. 여기서 X는 a-z 범위의 알파벳입니다. USB 메모리를 연결하고 dmesg 명령을 실행하면 그 USB 메모리가 어떤 장치에 연결되었는 지 알아볼 수 있습니다. USB 메모리에 쓰려면, 쓰기 방지 스위치를 풀어 놓아야 할 수도 있습니다.

[주의] 주의

여기서 설명한 대로 하면 해당 장치에 들어 있는 내용이 모두 지워집니다! USB 메모리의 장치 이름을 올바르게 사용하도록 주의하십시오. 예를 들어 장치 이름을 잘못 사용해 하드 디스크에 들어 있는 내용이 모두 지워질 수도 잇습니다.

4.3.1. 하이브리드 CD/DVD 이미지를 사용해 USB 메모리 준비하기

데비안 CD/DVD 이미지는 이제 USB 메모리에 직접 쓸 수도 있습니다. 그렇게 부팅 가능 USB 메모리를 쉽게 만들 수 있습니다. USB 메모리에 들어가는 CD 이미지나 DVD 이미지를 (netinsta, CD-1, DVD-1, netboot 따위) 하나 고르십시오. CD/DVD 이미지를 구하는 방법은 4.1절. “공식 데비안 GNU/리눅스 CD/DVD-ROM 세트” 참고.

아주 작은 USB 메모리의 경우(수 메가바이트 정도 뿐인 경우) mini.iso 이미지를 netboot 디렉터리에서(4.2.1절. “설치 이미지를 찾을 위치”에서 언급된 위치에서) 다운로드할 수 있습니다.

CD 이미지나 DVD 이미지를 USB 메모리에 직접, 현재 내용을 덮어 쓰면서 써야 합니다. 예를 들어 기존 GNU/리눅스 시스템을 사용하는 경우 CD나 DVD 이미지를 다음과 같이 USB 메모리에 쓸 수 있습니다. 단, USB 메모리의 마운트는 해제한 상태여야 합니다:

# cp debian.iso /dev/sdX
# sync

다른 운영체제에서 어떻게 하는지에 대해서는 Debian CD FAQ를 참고하십시오.

[중요] 중요

이미지는 파티션이 아니라 전체 디스크에 해당하는 장치에 써야 합니다. 예를 들어 /dev/sdb에 쓰면 되지만 /dev/sdb1에 쓰면 안 됩니다. unetbootin 같은 도구를 사용해 이미지를 수정합니다.

[중요] 중요

CD 이미지나 DVD 이미지를 USB에 쓰는 것만으로 대부분의 경우 동작합니다. 이 외에 다른 방법은 더 복잡하고, 특별한 경우 아니면 필요가 없습니다.

USB 메모리의 하이브리드 이미지는 저장 공간을 모두 사용하지 않습니다. 그러니 빈 공간에 펌웨어 파일, 추가 패키지, 또는 기타 파일을 원하는대로 저장하면 좋을 수도 있습니다. USB 메모리가 하나밖에 없거나 설치에 필요한 사항을 한 개 안에 넣으려고 할 때 좋습니다.

USB 메모리에 두 번째 FAT 파티션을 만들고, 파티션을 마운트해 펌웨어를 복사하거나 풀어 놓습니다. 예를 들어:

# mount /dev/sdX2 /mnt
# cd /mnt
# tar zxvf /path/to/firmware.tar.gz
# cd /
# umount /mnt

mini.iso 파일을 USB 스틱에 넣었을 수도 있습니다. 그러면 두 번째 파티션이 이미 있기 때문에 새로 만들 필요가 없습니다. USB 메모리를 빼고 다시 넣으면 두 개의 파티션이 보입니다.

4.3.2. 수동으로 USB 메모리에 파일 복사하기

다른 방법은 수동으로 설치 파일 및 CD 이미지를 복사하는 방법입니다. 단 USB 메모리는 크기가 최소 1GB는 되어야 합니다. (4.3.3절. “수동으로 USB 메모리에 파일 복사하기 — 유연한 방법”에 쓰여 있는 대로 하면 더 작아도 가능합니다.)

syslinux나 그 설정 파일과 함께 모든 설치 프로그램 파일(커널 포함)이 들어간 hd-media/boot.img.gz라는 올인원 파일이 있습니다.

이 방식은 편리하기는 하지만 한 가지 큰 단점이 있습니다. USB 메모리 용량이 아무리 크더라도 장치의 논리 크기가 1GB까지 밖에 안 됩니다. USB 메모리의 파티션을 나눠서 새 파일 시스템을 만들어야 다른 용도로 사용할 수 있습니다.

이 이미지를 사용하려면 USB 메모리에 압축을 풀어 놓기만 하면 됩니다:

# zcat boot.img.gz > /dev/sdX

그 후, USB 메모리를 마운트하면(mount /dev/sdX /mnt) 그 안에 FAT 파일 시스템 이 생깁니다. 거기에 데비안 ISO 이미지를(netinst나 전체 이미지 중 하나) 복사합니다. USB 메모리를 마운트 해제하면(umount /mnt) 끝납니다.

4.3.3. 수동으로 USB 메모리에 파일 복사하기 — 유연한 방법

좀 더 유연한 방법이 좋다면, 아니면 무슨 일이 일어나고 있는지 보고 싶기라도 하다면, 다음 방법으로 파일을 USB 메모리에 넣으십시오. 이 방식의 한 가지 장점은, (USB 메모리 용량이 충분히 크다면) 어떤 ISO 이미지이든지(DVD 이미지까지) 복사할 수도 있다는 점입니다.

4.3.3.1. USB 메모리 파티션 나누기

다음은 USB 메모리에서 전체 장치를 사용하지 않고, 첫번째 파티션을 사용하는 방법입니다.

[참고] 참고

대부분의 USB 메모리는 FAT16 파티션 하나로 미리 설정되어 있으므로, 아마 USB 메모리의 파티션 분할을 재시도하거나 다시 포맷할 필요가 없습니다. 포맷 해야하는 경우는 cfdisk나 기타 파티션 도구를 사용하고, FAT16 파티션을 만들고[3] 다음과 같이 MBR을 설치하십시오.

# install-mbr /dev/sdX
 

install-mbr 명령은 mbr 데비안 패키지에 들어 있습니다. 다음과 같이 파일 시스템을 만드십시오:

# mkdosfs /dev/sdX1

주의해서 USB 메모리의 정확한 디바이스 이름을 사용하십시오. mkdosfsdosfstools 데비안 패키지에 포함되어 있습니다.

USB 메모리에서 부팅한 다음 커널을 시작하려면 부트로더를 USB 메모리에 넣어야 합니다. 그 어떤 부트로더라도(예를 들어 lilo) 동작하지만, syslinux를 사용하는 게 편리합니다. syslinux는 FAT16 파티션을 사용하고 텍스트 파일을 편집하는 것만으로 설정을 바꿀 수 있기 때문입니다. FAT 파일 시스템을 지원하는 어떤 운영 체제라도 부트로더를 설정할 때 이용할 수 있습니다.

syslinux를 USB 메모리의 FAT16 파티션에 넣으려면, syslinuxmtools 패키지를 설치하고, 다음 명령을 실행합니다:

# syslinux /dev/sdX1

다시 말하지만, 신경 써서 장치 이름을 올바르게 쓰십시오. syslinux를 실행할 때 그 파티션을 마운트하면 안 됩니다. 이 명령은 파티션에 부트 섹터를 쓰고, 부트로더 코드가 들어 있는 ldlinux.sys 파일을 만듭니다.

4.3.3.2. 설치 프로그램 이미지 추가하기

이 파티션을 마운트하고 (mount /dev/sdX1 /mnt) 다음 설치 이미지 파일을 USB 메모리로 복사하십시오:

  • vmlinuz 또는 linux (커널 바이너리)

  • initrd.gz (초기화 RAM 디스크 이미지)

설치 프로그램은 텍스트 버전과 그래픽 버전을 선택할 수 있습니다. 후자는 gtk 하위 디렉터리에 있습니다. 파일 이름을 변경하고 싶다면, syslinux는 DOS(8.3) 파일 이름만 처리할 수 없음에 주의하십시오.

그 다음 syslinux.cfg 설정 파일을 만듭니다. 최소한 다음 줄이 필요합니다 (netboot를 사용하는 경우, 커널 바이너리 이름을 linux로 변경하십시오):

default vmlinuz initrd=initrd.gz

그래픽 설치 프로그램은 뒤에 vga=788을 추가하십시오. 다른 파라미터도 원하는대로 뒤에 붙일 수 있습니다.

부팅 프롬프트에서 파라미터를 추가할 수 있게 허용하려면 prompt 1 줄을 추가하십시오.

hd-media 이미지를 사용하는 경우 여기에서 데비안 ISO 이미지 파일을[4] USB 메모리에 복사합니다. 완료되면 USB 메모리 마운트를 해제하십시오 (umount /mnt).



[3] bootable 플래그를 잊지 말고 붙이십시오.

[4] netinst나 전체 CD 이미지 중 하나를 사용할 수 있습니다(4.1절. “공식 데비안 GNU/리눅스 CD/DVD-ROM 세트” 참조). 반드시 맞는 이미지를 선택하십시오. netbootmini.iso 이미지는 이 용도에 사용할 수 없으니 주의하십시오.