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

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

[주의] 주의

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

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

이 아키텍쳐에서 데비안 설치 이미지는 isohybrid 기술을 이용해 만들어졌습니다. 즉, 설치 이미지를 USB 메모리에 직접 쓸 수도 있습니다. 그렇게 부팅 가능 USB 메모리를 쉽게 만들 수 있습니다. USB 메모리에 들어가는 이미지를 (netinst, CD, DVD-1) 하나 고르십시오. 설치 이미지를 구하는 방법은 4.1절. “공식 데비안 GNU/리눅스 설치 이미지” 참고.

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

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

# cp debian.iso /dev/sdX
# sync

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

[중요] 중요

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

[중요] 중요

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

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

그렇게 하려면, cfdisk 또는 기타 파티션 도구를 사용해 USB 메모리에 추가 파티션을 만드십시오. 그리고 파티션에 (FAT) 파일시스템을 만들고, 마운트한 다음 펌웨어를 그 위치에 풀어 넣으십시오. 예를 들어 다음과 같습니다:

# mkdosfs -n FIRMWARE /dev/sdX3
# mount /dev/sdX3 /mnt
# cd /mnt
# tar zxvf /path/to/firmware.tar.gz
# cd /
# umount /mnt

USB 메모리에 해당하는 장치 이름을 정확히 사용하도록 주의하십시오. mkdosfs 명령은 dosfstools 데비안 패키지에 들어 있습니다.

[참고] 참고

만약 mini.iso 파일을 USB 메모리에 쓴 경우, 두 번째 파티션은 이미 있기 때문에 새로 만들 필요가 없습니다. USB 메모리를 빼고 다시 넣으면 두 개의 파티션이 보입니다.

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

데비안 설치 이미지에 isohybrid 기술이 사용되기 전에는, 아래 장에 설명된 방식은 미디어를 준비하고 USB 장치에서 부팅하는 방법에 관한 내용이었습니다. 해당 내용은 4.3.1절. “하이브리드 CD/DVD 이미지를 사용해 USB 메모리 준비하기” 관련 기법으로 바뀌었지만, 정보 제공 및 기록 목적으로 남아 있으며 경우에 따라 일부 사용자에게 쓸모가 있을 수도 있습니다.

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

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

[참고] 참고

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

이 이미지를 직접 USB 메모리에 압축을 풀어 놓으십시오:

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

그 후, USB 메모리를 마운트하면(mount /dev/sdX /mnt) 그 안에 FAT 파일 시스템 이 생깁니다. 거기에 데비안 ISO 이미지를 (netinst나 전체 CD 이미지, 4.1절. “공식 데비안 GNU/리눅스 설치 이미지” 참고) 복사합니다. USB 메모리를 마운트 해제하면(umount /mnt) 끝납니다.

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

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

4.3.3.1. 파티션 만들기 및 부트로더 추가하기

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

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

먼저 syslinuxmtools 패키지를 시스템에 설치해야 합니다.

[참고] 참고

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

# cat /usr/lib/syslinux/mbr/mbr.bin 
>/dev/sdX
 

그리고 다음 명령으로 파일 시스템을 만드십시오:

# mkdosfs /dev/sdX1

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

이제 제대로 파티션한 USB 메모리가 있으면, 다음 명령으로 FAT16 파티션에 syslinux를 설치해야 합니다:

# syslinux /dev/sdX1

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

4.3.3.2. 설치 프로그램 파일 추가하기

두가지의 다른 설치 방식이 있고 여기서 선택합니다: hd-media 방식은 설치 ISO 파일이 USB 메모리에 들어 있어야 하고, 그 ISO 파일에서 설치 프로그램 모듈 및 베이스 시스템을 읽어들입니다. netboot 방식은 그렇게 하지 않고 필요한 내용을 모두 데비안 미러사이트에서 읽어들입니다.

어느 데비안 미러에서든지 debian/dists/bullseye/main/installer-amd64/current/images/ 아래 hd-media 또는 netboot 하위 폴더에서 원하는 설치 프로그램 파일을 다운로드해야 합니다.

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

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

설치 프로그램은 텍스트 기반 버전과 (파일은 hd-media 또는 netboot 위치에 있습니다) 그래픽 버전을 (해당 gtk 하위 폴더를 보십시오) 선택할 수 있습니다.

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

그 USB 메모리의 최상위 디렉터리에 이름이 syslinux.cfg인 텍스트 파일을 만듭니다. 그 안에는 최소한 다음 줄이 필요합니다:

default vmlinuz initrd=initrd.gz

netboot의 파일을 사용하는 경우, 커널 바이너리 이름을 linux로 변경하십시오.

그래픽 설치 프로그램의 경우 (gtk의 이미지) 줄의 끝에 vga=788 파라미터를 추가해야 합니다. 기타 다른 파라미터를 필요에 따라 추가할 수 있습니다.

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

hd-media의 파일을 사용하는 경우, 데비안 설치 이미지의 ISO 파일을 USB 메모리로 복사해야 합니다. (netboot 방식의 경우 불필요합니다.)

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

다 마쳤으면, USB 메모리 마운트를 해제하십시오 (umount /mnt).



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