2006년 11월 30일
CentOS USB HDD install 시 주요 이슈
1. 설치에 들어가면 아나콘다 설치화면상에서는 usb 하드디스크가 나오지 않으나 비상용 shell에서 fdisk 해보면 usb hdd가 보인다.

Solve> 처음 cd를 넣고 커맨드 입력을 받은 후 설치화면으로 넘어가지 않는가? 보통 우리는 뭐 linux 라는 커맨드를 입력하거나 아니면 그냥 Enter Key를 입력함으로써 넘어가고 특별한 하드웨어적 이상이 있는 경우에 한해서 acpi=off등의 문구를 입력하게 되는데 이 과정에서 linux expert 라고 입력하고 넘어가면 앞서 아나콘다 방식으로 설치시 보이지 않던 HDD가 보이게 된다.

2. usb로 부팅을 어떻게 하는가?

Solve> 제발 CMOS에도 관심을 가지자. 여러분이 쓰는 하드웨어가 usb hdd를 통한 부팅을 지원하지 않으면 이거 하나마나..-_-

3. GRUB은 어디다가 깔 것인가?

Solve> Local HDD의 MBR에 깔지 말고 USB HDD에 깔자 -ㅅ- 그리고 cmos 상에서 usb로 부팅하면 된다. 그리고 바로 위에서 이야기 한 것이 있는데, usb로 부팅을 하지 못하는 경우는 local hdd의 mbr에 grub을 설치함으로써 해결이 가능하다. 근데 usb hdd에 설치를 하는 이유중 하나는 다른 시스템에 이 녀석을 가져가서 열심히 부팅해서 모듈만 새로 잡고 바로 시스템 적용이 가능하게 하기 위해서이기도 한데(어쨌거나 나는 목표가 그렇다.) 그게 안되면 말짱 황인지라..되도록 cmos상의 boot device를 잡는 과정상에서의 usb hdd 부팅을 추천한다

4. 막상 설치가 끝난 이후에 재부팅을 시도하는데 안된다!!

원인> usb hdd로 boot device를 잡아 부팅을 하게 될 경우 실제로 부팅이 되지 않는다. (장난하냐고? -_- 좀 기다려봐라. 한국사람 말은 존내 저 끝까지 하염없이 쳐들어도 모르는거다.) 처음 grub을 통해서 모듈을 올리고 부팅하는 과정(유닉스/리눅스 부팅과정상의 mbr->initrd 과정이 되겠다)에서의 initrd에 실제로 usb를 인식하는 모듈이 로드되지 않아 발생하는 문제가 되겠다.

Solve> 우선 당신이 설치한 cd 1번 (최근에는 centos가 server버전의 cd를 내놓고 있어서 본인도 centos-server를 사용하는지라 꼴랑 한장)을 사용해서 다시 시스템을 cd부팅한다. 당연히 당신에게 프롬프트를 뿌리며 엔터를 치던 뭘 하던 니 꼴리는데로 하시라고 당신에게 몸을 내맡기고 있는 시스템과 마주하게 된다.(이거 왠지 저렴한 빨간등 동네의, 서비스 정신이라곤 당췌 없는, 단지 누워 벌리는게 서비스의 전부인 고깃덩이들을 보는 느낌이다.)

자..복구모드로 부팅을 하자. linux rescue 라고 입력하고 엔터를 친 후 이렇게 저렇게 그렇게 해서(이것도 모르면서 usb hdd에 리눅스를 까는 시도를 하는 굉장한 고수는 없으리라 믿으면서..) 콘솔모드로 들어간다.

우선 fdisk로 디스크 인식순서를 확인한다. 여기서 주의할 것중 하나가 실제로 local system이나 cdrom을 통해서 부팅할때와 usb로 부팅할때의 디스크 인식순서 (grub에 hd(0,0) hd(1,0) 요딴식으로 써있는것들..)가 다르다. 이 부분은 주의하고 우선 fdisk -l 로 현재 usb디스크가 인식이 어떻게 되어있는지 확인한다.

자..대충 적절하게 뭐 /mnt/sysimage 를 만들어주던가 하고 대충 mount를 해서 실제 시스템 파티션과 boot 파티션을 적절하게 마운트한다. 그리고 chroot를 적절하게 해준다. (좀 알아서 좀 해라. 아 귀찮어..-ㅅ- chroot /mnt/sysimage 라고 치던지 뭐 알아서 좀..)

이후 mkinitrd로 initrd를 새로 생성해준다. (당췌 이게 뭔지 모르겠는 사람은 어디 좀 검색이라도 해보던가 어디 가서 강좌라도 읽고 좀 와라. 나한테 물어보면 몇대 때릴꺼다.)

자..하나 생성해주자.

요래요래 해주면 된다.

mkinitrd --with-usb --preload=ehci-hcd --preload=usb-storage --preload=scsi_mod --preload=sd_mod /boot/usb-initrd-`uname -r`.img `uname -r`

요래요래 막 해준다. (왜 uname -r 인지는 알리라 믿고..) 앞에 usb라고 써준건..그냥..-_- 좀 구분이라도 하시라고..(본인은 R60e(놋북이름이다)-usb-뿅뿅뿅.img 이렇게도 쓰고 다른 서버에 붙여서 쓸때는 서버모델명-숫자(순서가 되겠다)-usb-뿅뿅뿅.img 요런식으로 쓰고 해서 모듈을 그때그때 필요한데로 생성해준다. 매번 명령어 치기 귀찮으니까 왠만하면 스크립트 하나 만들어라..)

아 그리고 제발 '과 ` 좀 구분하자. '로 적어두고 안된다고 우기면 때릴꺼다!!(뒤에 `는 esc 근처에 있는거고 앞에 ' 는 큰 따옴표랑 동거하는 놈이다)

자 /boot/grub/grub.conf 파일을 또 적절하게 수정해준다. (이런거 정말 일일이 알려줘야하는거냐? 댁이 바꾼거 알아서 좀 적어넣고 댁이 좀 써보고 싶은데로 대충 수정 좀 해라..)

자..이제 리부팅하면 된다!!

5. 이거 하란데로 다 했는데 grub 화면이 막 깨지고 막 부팅도 안되고 하는게 막 이상하다!!

Solve> 자 아까 이야기했다. 실제 local hdd로 부팅할때와 usb hdd로 부팅할때 인식되는 순서가 다르다고..
grub.conf 파일을 보면 hd(0,0) hd(1,0) 요런식으로 막 적혀있는것들이 있을건데 그게 설치시 인식된 순서와 usb로 인식될때의 순서가 다르다보니 그런거다. 아까처럼 rescue 모드로 부팅해서 적절하게 (제발 좀 물어보지 말고 알아서 좀 해봐라 아 놔) 수정해준다. 그리고 /etc/fstab 파일도 혹시나 수정해줄만한 내용이 있는지 확인해서 수정도 좀 하고 하자. 특히 usb hdd를 사용한답시고 usb hdd의 파티션을 죄다 ext3로 만드는건 좀 넌센스다. -_- 실 데이터 공간은 vfat(흔히 말하는 fat32)로 만들어서 윈도우에서도 손쉽게 데이터를 주고받을 수 있도록 해주는 센스가 필요하다. 그리고 vfat등은 e2label을 사용한 라벨링이 불가능하므로 fstab에서 실제로 /dev/sd** 요런식으로 수동으로 지정해줘야 하므로 확실하게 수정해주어야 하는 부분이 되므로 주의해서 다루도록 하자 :-) (아 물론 데이터공간같은거 /DATA에 마운트 하고 이러면 부팅되는데야 지장은 없다만 그래도 '아 왜 안돼' 라고 생각하는 양반들이 있을까봐..)


아마 레드햇 계열 리눅스의 usb hdd 설치는 이정도가 주요 이슈가 될 듯 하다. 아직까지 다른 이슈는 발견한게 따로 없긴 한데 혹시나 다른 이슈가 발견되어 영 모르겠다 싶으면 물어보길 바란다.

그럼 -_-)/
by ydhoney | 2006/11/30 16:07 | IT&Linux | 트랙백 | 핑백(1) | 덧글(1)
트랙백 주소 : http://ydhoney.egloos.com/tb/2847955
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Linked at 미루엘의 여행 : 무지무지 까.. at 2008/07/09 15:30

... http://ydhoney.egloos.com/2847955져따;; ... more

Commented by ydhoney at 2006/12/04 09:03
USB HDD를 이용한 시스템 부팅시 이건 OS와 무관하게 중요한건데..USB HDD에 전원공급이 차단되는 불상사를 겪지 않도록 주의하자..OTL

:         :

:

비공개 덧글



<< 이전 페이지 | 다음 페이지 >>