외장 드라이브를 구입하는 것은 오래된 기기에 생명을 불어넣거나, 내부 하드 드라이브를 교체할 수 없거나 바꾸고 싶지 않은 기기에서 리눅스를 실행할 수 있게 해주는 훌륭한 방법입니다. 예를 들어, 듀얼 부팅 시스템에서 리눅스를 사용하고 싶지만 컴퓨터 하드 드라이브에 여유 공간이 없다고 가정해 봅시다. 한 가지 해결책은 Knoppix와 같은 '활성적인' 리눅스 배포판을 사용하는 것으로, CD에서 직접 실행할 수 있습니다. 이 방법은 가끔 사용하면 효과가 있지만, 여러 심각한 단점이 있습니다:
영구성을 위해 여전히 데이터 파일이 필요합니다. 아주 작은 파일만 사용할 경우에는 플로피 디스크를 사용할 수 있습니다; 중간 크기 파일에는 USB 플래시 드라이브가 충분할 수 있지만, 어느 것도 이상적이지는 않습니다.
"액티브" CD를 사용할 때는 자신의 애플리케이션을 설치하거나 기존 애플리케이션을 커스터마이징하는 것이 매우 어렵거나 불가능합니다.
액티브 배포판을 사용하면 성능이 느려지는데, 특히 시작 시 모든 장치를 감지할 때 두드러지지만, 런타임에도 마찬가지입니다(모든 것이 CD에서 로드되어야 하는데, 보통 하드 드라이브에서 로드하는 것보다 훨씬 느리기 때문입니다).
물론 다른 선택지도 있습니다. 예를 들어, 다른 내장 드라이브를 구입해 리눅스를 설치할 수 있습니다. 하지만 이 기계에는 드라이브 베이가 전혀 없는 경우가 흔합니다(특히 노트북은 보통 내부 하드 드라이브 하나만 허용되니까요).
또는 현재 드라이브 대신 더 큰 드라이브를 사용하고, 그 드라이브에서 얻는 공간에 리눅스를 설치할 수도 있습니다. 하지만 기존 OS 시스템을 새 드라이브에 재설치하고, 모든 애플리케이션을 재설치·재구성하며, 모든 데이터를 복원해야 하므로 시간이 많이 소요됩니다.
더 나은 해결책은 외장 하드 드라이브를 구입해 리눅스를 설치하는 것입니다. 이 덕분에 기존 하드웨어와 소프트웨어를 변경하지 않고 리눅스를 사용하고 싶을 때만 외장 드라이브를 연결할 수 있습니다.
탈착식 드라이브 옵션
리눅스를 설치할 수 있는 모바일 기기의 종류는 플로피 디스크 드라이브부터 USB 플래시 장치, USB/FireWire 하드 드라이브 등 다양합니다.
리눅스가 1.44MB 플로피 디스크나 32MB USB 디스크와 같은 소용량 장치에 설치될 수 있는 것은 사실이지만, 이들은 종종 (필연적으로) 손상된 설치 환경을 복구하기 위한 특수화된 축소 배포판입니다.
하지만 외장 하드 드라이브는 합리적인 비용으로 범용 리눅스 배포판에 가장 큰 유연성을 제공합니다.
외장 드라이브는 Maxtor, Western Digital 등 여러 제조사에서 나오며 크기도 다양할 수 있습니다. 이 드라이브들은 모두 표준 3-1/2" 또는 2-1/2" IDE 드라이브를 담는 외부 박스를 내장하고 있습니다. 이 드라이브들은 보통 USB나 IEEE1394(FireWire)로 컴퓨터에 연결됩니다.
USB에는 1.1과 2.0 두 가지 주요 버전이 있습니다. 버전 1.1은 최대 전송 속도가 12 Mbit/s(메가비트/초)이며, 버전 2.0은 최대 480 Mbit/s의 전송 속도를 지원합니다. 대부분의 2.0 호환 드라이브는 1.1과 하위 호환되지만, 1.1은 더 느리기 때문에 다른 선택지가 없다면 1.1은 피하는 것이 좋습니다.
FireWire 표준은 또한 다양한 가능한 속도를 정의하지만, 실제로 사람들이 FireWire를 말할 때 가장 많은 것은 최대 400 Mbit/s의 전송을 지원하는 "FireWire400"을 의미합니다.
속도 면에서는 USB 2.0과 FireWire 사이에 큰 차이가 없습니다: USB 2.0이 더 빠른 속도를 보고하지만, 차이 때문에 실제로는 비슷합니다. 만약 컴퓨터가 두 가지 모두 있다면, FireWire 대신 USB를 사용하는 것이 더 나을 수 있습니다(이유는 나중에 설명하겠습니다). 하지만 FireWire만 있다면 당연히 FireWire만 선택할 수 있습니다. 최대한의 유연성을 원한다면, USB 2.0과 FireWire를 지원하는 많은 드라이브(예를 들어 이 글 후반부에서 사용할 제품)를 선택하세요.
FireWire와 USB 2.0 카드는 필요한 포트가 없는 컴퓨터에는 저렴합니다. PCI(데스크톱용), PCMCIA(노트북용)가 없는데, 예를 들어 이 글 후반부에서 사용한 PCMCIA FireWire 카드는 약 10파운드(20달러 미만)였습니다.
이 글을 마치기 위해 5-1/4" 외장 드라이브 박스를 구입했습니다. 이 펜던트는 드라이브에 기본으로 제공되지 않으며, 3-1/2" 하드 드라이브와 CD-RW/DVD-RW 드라이브 같은 5-1/4" IDE 장치 등 표준 IDE 장치에 모두 장착할 수 있는 매우 유연한 펜던트입니다. 인클로저에는 USB 2.0과 FireWire 연결이 되어 있습니다.
플래터 박스를 IBM 씽크패드 T30 노트북에 연결하기 위해 PCMCIA FireWire 카드도 구입했습니다(내장 USB 포트는 USB 1.1만 지원합니다).
카트리지와 FireWire 카드 모두 더 저렴합니다(각각 50GBP와 10GBP).
테스트용으로 플래터 박스를 준비한 13GB 3-1/2인치 IDE 드라이브와 연결했는데, 실제 사용 시에는 용량이 더 큰 드라이브를 구매했는데, 지금은 이것도 매우 저렴합니다(GB당 약 50GBP!). )
리눅스 지원
예상하셨겠지만, 이 트레이들에 대한 리눅스 지원은 정말 좋습니다. SBP(직렬 버스 프로토콜) 표준을 준수하는 "대용량 장치"를 위한 모든 장치는 리눅스에서 쉽게 사용할 수 있습니다.
일반적으로 이러한 장치 지원을 가능하게 하려면 커널이 많은 것들을 지원해야 합니다(직접 컴파일되거나 모듈을 통해서).
USB와 FireWire 모두에서 SBP 장치 지원은 SCSI 에뮬레이션을 통해 구현되며, 즉 장치를 리눅스에 SCSI 디스크처럼 표시합니다. 이는 리눅스에서 스토리지 장치를 추상화하는 일반적인 방법입니다(예: IDE CD/DVD 드라이브도 SCSI 에뮬레이션을 통해 연결하는 경우가 많습니다). 따라서 다음과 같은 커널 지원이 필요합니다:
* SCSI 지원
* SCSI 시뮬레이션
* SCSI 디스크 지원
또한, 연결 방식에 따라 다음과 같은 지원이 필요할 수 있습니다:
FireWire에 대해:
IEEE1394 지원
OHCI1394 지원
RAW1394 지원
SBP-2 지원
USB의 경우:
(호스트) USB 지원
OHCI 지원
UHCI 지원
USB 대용량 저장장치 지원
물론 그래픽 카드 등 다른 하드웨어를 완전히 정상적으로 지원해야 하고, 실제 하드웨어 상황에 따라 다른 모듈이 필요할 수도 있습니다.
예를 들어, 저는 PCMCIA(카드버스) FireWire 카드를 사용하는데, 추가로 다음 사항을 추가해야 합니다:
PCMCIA 지원
Cardbus 지원
설치
이제 외부 기기가 생겼으니 리눅스 설치를 시작할 예정입니다.
지금 리눅스를 설치하는 가장 쉬운 방법은(제 생각에) 모든 하드웨어를 연결하는 것입니다(여기에는 PCMCIA FireWire 카드를 연결하고, FireWire 케이블을 PCMCIA 카드와 드라이브에 연결하고, 드라이브의 전원 스위치를 켜는 것이 포함됩니다); 그 다음, 선택한 배포판의 설치 CD로 컴퓨터를 부팅하세요.
제가 선택한 배포판은 Gentoo(관련 링크는 참고 자료 참고)였고, 최신 "Universal" x86 라이브 CD(2004.1)를 사용했습니다. 다른 분포는 여기서 설명한 것보다 더 많거나 적은 단계를 요구해야 합니다.
설치 CD와 함께 부팅하면 운이 좋으면 드라이브를 인식할 수 있을 거예요. 드라이브는 /dev/sdX 아래에 디스크 형태로 나타나야 하며, 여기서 X는 "a"로 시작하는 소문자입니다. 제 시스템에서는 외장 드라이브가 /dev/sda로 인식되지만, 다른 SCSI 디스크(시뮬레이션된 SCSI 디스크)가 있으면 이 설정이 달라집니다; 그럴 경우 /dev/sdb 또는 다른 글자가 될 수 있습니다. 드라이브가 자동으로 감지되지 않는다면, 추가 조치가 필요할 수 있습니다. 예를 들어, 부팅 옵션을 통해 FireWire나 PCMCIA를 활성화하거나, 커널 모듈을 수동으로 로드해야 할 수도 있습니다(문제 해결 가이드 링크는 참고 자료 참조).
드라이브가 확인되면 설치 전반에 걸쳐 내부 하드 드라이브처럼 작동해야 합니다; 필요에 따라 파티션을 만들고 평소처럼 리눅스를 설치할 수 있을 것입니다.
한 가지 주의할 점이 있습니다: 부트로더를 설치할 때(보통 GRUB나 LILO) 어디에 설치할지 주의하세요 - 보통 기본값인 마스터 부트 레코드(MBR)에 설치하지 않는 것을 권장합니다. 대신 외장 드라이브의 루트 파티션(또는 별도의 부트로더를 사용할 경우 부팅 파티션)에 설치해야 합니다.
이제 기기에 리눅스가 설치되었으니, 리눅스를 부팅해 봅시다. 여기서 시작할 수 있는 몇 가지 팁이 있습니다.
안내
새 드라이브 부팅에 대해 논의하기 전에, 이해해야 할 부트로더 이론들이 있습니다.
부트로더는 보통 컴퓨터의 첫 번째 하드 드라이브의 MBR에 설치됩니다. 부트로더가 호출될 때(BIOS가 MBR에서 코드를 자동으로 실행함) 보통 부팅이 가능한 OS 메뉴를 표시합니다. 특정 OS 부팅을 선택하세요.
이 시나리오에 대해 주목할 점이 두 가지:
* OS 선택 메뉴(보통) 디스크에서 로드됨.
* 운영체제를 부팅하려면 부트로더가 디스크에서 해당 커널을 읽어야 합니다.
위 작업이 운영체제가 로드되기 전에 발생하므로, 모든 디스크 읽기는 BIOS 호출 방식대로 이루어져야 합니다. 이 경우 심각한 문제가 발생합니다: 즉, 디스크를 직접 부팅하려면 BIOS가 FireWire 또는 USB로 연결된 디스크를 지원해야 합니다. 이는 종종 이러한 유형의 디스크에서 부팅하는 BIOS 옵션으로 볼 수 있습니다. 사실 FireWire BIOS 지원은 현재 드물지만, USB 지원은 점점 더 보편화되고 있습니다. 그래서 비교적 새 컴퓨터에서 USB를 사용한다면, 리눅스에서 직접 드라이브를 부팅할 수 있어야 합니다.
외장 드라이브의 MBR에 GRUB을 설치한 후에는 USB로 연결하면 드라이브를 직접 부팅할 수 있습니다. 부팅 시 연결된 디스크가 단순히 BIOS 설정 프로그램에 들어가는 상태입니다. 외장 디스크는 일반 하드 드라이브처럼 보입니다: 부팅 순서상 디스크를 내부 드라이브보다 앞에 위치시키면 됩니다.
내부 드라이브의 MBR에 부트로더를 설치하고 USB 드라이브를 부팅하는 데도 사용할 수 있습니다(이 시점에서는 GRUB에서 HD1로 표시됩니다). FireWire를 사용 중이라면 BIOS가 드라이브를 직접 부팅하지 못할 가능성이 있어 추가 작업이 필요할 수 있습니다.
다행히도 리눅스의 유연성 덕분에, 직접 부팅이 불가능하다면 (PCMCIA FireWire 카드가 바로 그런 경우입니다!) )는 꽤 간단한 해결책들이 있을 것입니다. 초기 부팅 단계는 플로피 디스크 드라이브, CD, USB 키, 또는 주 드라이브의 작은 파티션과 같은 지원되는 장치에서 수행할 수 있으며, 추가 작업은 외장 드라이브를 통해 수행할 수 있습니다.
부팅 이미지 빌드
부트스트래핑은 두 가지 방법으로 수행할 수 있습니다:
* 단일 단계 안내
커널은 부팅 후 루트 파일 시스템을 설치하고, 초기화 스크립트(보통 /sbin/init)를 호출하여 초기화를 계속합니다.
* 2단계 (initrd) 부트스트래핑
커널은 부팅하여 초기 RAM 디스크(initrd)를 설치하고, 추가로 사용자 지정 가능한 초기화를 수행합니다, 그리고 루트 파일 시스템을 설치하고 초기화를 진행합니다(보통 /sbin/init 호출도 포함). 두 방법 모두 장단점이 있습니다.
한 단계 안내
1단계 부팅을 사용하려면 내장 루트 파일 시스템을 설치하는 데 필요한 모든 드라이버를 갖춘 커널을 구축해야 합니다
|