James C. Liu, 2007년 1월

어제 Fry's 에서 4GB USB 점프드라이브의 세일이 끝났습니다. 아주 싼편은 아니었지만 49$ 로 아주 괜찮은 PQI 사의 USB 플래시 드라이브를 구입했습니다. 필자는 이것으로 무엇을 할지 결정하지 못했었지만 순간 솔라리스 네바다 b55 를 USB 에 구워서 항상 가지고 다니면서 사용하면 어떨까 하는 생각을 하게 되었습니다.

인도의 Belenix 유저들로부터 솔라리스가 실행가능한 1GB 플래시 어카이브에 대한 많은 뉴스가 있었습니다. 아주 멋진 소식이고 이러한 플래시 어카이브 이미지를 만든 Anil Gulecha 는 엄청난 칭송을 받고 있습니다. 필자 또한 여기에 동참하기로 했습니다. 그가 많은 작업을 했던 usbdump.sh 에서 많은 부분들을 재사용 함으로써 솔라리스 네바다 b55 이미지를 USB 드라이브에 부팅 가능한 형태로 만들 수 있었습니다.

단계 소개

기본적으로 과정은 기억하기 어려운 커맨드들을 제외하고 매우 직관적입니다.

    1. USB 드라이브를 포맷하고 그 위에 UFS 파일시스템을 생성.
    2. 인스톨 DVD 에서 파일들을 복사
    3. GRUB 을 인스톨 해서 부팅이 가능하도록 만듬
    4. 시스템을 USB 드라이브를 이용해서 부트

필자가 발견한바로는 설치 DVD 의 내용들은 직접설치면에서 상당히 쉽지 않습니다. 즉 예를 들어 DVD 인스톨 스크립트가 미디어에 위치 (예를 들어 /cdrom) 미리 결정해 놓은 것등을 예로 들 수 있습니다. 이러한 것들은 문제회피 방법(workaround) 를 모를 경우 여러분을 상당히 고달프게 만들 수 있습니다. 그러나 필자는 USB 드라이브 설치가 표준 DVD 설치보다 30% 이상 빠르다는 것을 알아 냈고 광 디스크를 돌리는 것보다 훨씬 조용함도 알 수 있었습니다. 또한 PXEboot 넷-인스톨을 지원하지 않는 시스템 혹은 x86.miniroot 에 의해 기본적으로 지원되지 않는 네트워크 드라이버를 가진 시스템에서도 잘 동작했습니다. 플래시 드라이브는 디스크로써 드라이버 소스 파일, 썬 스튜디오 11 컴파일러 패키지, 혹은 선택 소프트웨어 같은 추가 소프트웨어를 아주 쉽게 추가시킬 수 있습니다.

USB 플래시 드라이브를 솔라리스용으로 포맷하기

이 작업은 Anil 의 usbdump.sh 를 리버스엔지니어링으로 분석해서 알아 냈고 꽤 잘 동작합니다. 쉘스크립트에서 해당 부분을 추출해서 고유의 스크립트를 만들기를 귀찮아 하는 사람들을 위해 필자가 드라이브를 포맷하는데 사용했던 방법을 공개 합니다.

    1. 현재의 솔라리스10 혹은 네바다 박스에서 volfs 를 다음의 커맨드를 이용해서 멈춥니다: # svcadm disable volfs
    2. USB 플래시 드라이브를 꼽고 몇초를 기다립니다
    3. # rmformat -l 을 실행해서 리무버블 미디어 장치의 목록을 확인해서 연결된 디바이스중 Generic USB 플래시 디스크를 찾고 로지컬 노드: /dev/rdsk/c3t0d0p0 혹은 이와 비슷한 라인을 찾습니다. 필자는 앞으로 /dev/rdsk/c3t0d0s0 를 [usbnode] 로 가정합니다. 여러분은 여러분의 노드 경로을 찾아야 합니다.
    4. # fdisk -B [usbnode] (이전단계의 [usbnode])
    5. # fdisk -W - [usbnode]
    6. 이제 이전 단계의 출력을 통해서 사용가능한 스토리지의 최대 MB(MAXSIZE) 를 알아 내었습니다. 여러분은 이 작업을 bytes/sector (보통 512) 를 출력 하단의 섹터의 숫자를 곱함으로써 얻을 수 있습니다.(필자의 경우 4 GB 드라이브는 대략 7.9 백만 섹터를 가지고 있었습니다)
    7. 파티션 테이블 파일을 설정합니다(텍스트 파일로 slices.txt 라고 부를 것이고 단순히 여백과 단어 그리고 글자들로만 이루어짐) - eval {$MAXSIZE - x} 표현을 삭제하고 이것을 숫자료 교체 합니다 (예를 들어 3897MB)

      slices: 0 = 2MB, {$MAXSIZE-3}MB, "wm", "root" :
               1 = 0, 1MB, "wu", "boot" :
               2 = 0, {$MAXSIZE - 1}MB, "wm", "backup"
        
    8. # rmformat -s ./path/to/slices.txt [usbnode]
    9. 실행: # devfsadm; devfsadm -C
    10. 플래시 드라이브에 UFS 를 생성: # newfs /dev/rdsk/[usbslice] (슬라이스는 [usbnode] 에서 p0 을 s0 으로 교체)
    11. 쓰기가 종료될때 까지 대기합니다.
    12. 이제 volfs 를 # svcadm enable volfs 을 실행해서 재시작 시킵니다. 그러나 다음 단계를 곧바로 실행하길 원한다면 잠시 보류하셔도 됩니다.

플래시 드라이브에 인스톨 미디어 로드하기

솔라리스 설치 미디어를 굽는것 처럼 솔라리스의 루프백 마운트 파일 시스템 기능을 사용해서 파일들을 디스크에 복사 하는 것이 가능합니다. 유틸리티는 lofiadm(1M) 이고 매우 유용한 유틸리티로 파일시스템에 원래 존재하고 있는 ISO 이미지 파일들을 마운팅함으로써 이것을 DVD 로 굽고 재마운팅 할 필요가 없도록 합니다. 다음의 단계들은 솔라리스 인스톨 미디어 ISO 를 마운트 하고 이것을 플래시 드라이브로 복사 하는 단계 입니다:

    1. # lofiadm -a /absolute/path/to/solarisdvd.iso (이 명령은 노드 /dev/lofi/1 생성해야 함)
    2. 디렉토리를 생성, 예를 들어 # mkdir /mnt/solmedia 한 후 # mount -F hsfs -o ro /dev/lofi/1 /mnt/solmedia 를 실행(디렉토리는 변경할 수 있음)
    3. volfs 를 svcadm disable volfs 를 이용해서 다시한번 비활성화 시킴. 플래시 드라이브 프못이후에 재활성화를 시켰을 경우에 해당됩니다.
    4. USB 플래시 드라이브를 삽입하고 몇초간 기다린 다음 rmformat -l 을 시켜서 논리 노드들의 목록을 확인합니다. 마운트 포인트 디렉토리를 생성해야 합니다. (예를 들어 # mkdir /mnt/usbdrive) 그리고 다음을 실행합니다:
      # mount -o nologging,noatime [usbslice] /mnt/usbdrive
      [usbslice] 가 논리적인 [usbnode] 와 동일함을 기억하시기 바랍니다. 그러나 우리는 slice0 을 플래시 드라이브에 생성했습니다. 그러므로 우리는 p0 을 s0 으로 교체 합니다(예를 들어 /dev/dsk/c3t0d0p0 -> /dev/dsk/c3t0d0s0).
    5. 이제 간단히 디렉토리를 /mnt/solmedia 로 변경하고 모든 것을 복사 합니다. 필자는 # cd /mnt/solmedia; cp -rP@ .??* * /mnt/usbdrive 커맨드를 사용했습니다. 모든 작업이 끝나면 모든 미디어들이 USB 에 담겨져 있어야 합니다.

몇몇 PQI 를 포함한 몇몇 플래시 드라이브에서 필자는 데이타 에러를 겪었습니다. 적어도 에러가 발생하면 솔라리스는 보통 알려주었고 어떤 패키지에서 에러가 났는지 알아낸 다음 이후에 다시 복사 하였습니다. 몇몇 아주 골치 아픈 경우로는 드라이브에서는 어떠한 에러도 보고하지 않았지만 설치 타임에 에러를 발생시키는, 예를 들어 Xorg 컴포넌트가 실행이 실패해서 포스트-인스톨 작업이 실패하고 윈도우 시스템이 올라오지 않는 등 이러한 에러가 발생할 수도 있습니다.

플래시 드라이브로 부팅하고 설치하기

필자가 시도한 어떤 IBM/Lenovo 랩탑에서 필자는 점프 드라이브를 삽입하였고 시스템 바이오스는 USB 드라이브로 부팅할 수 있음을 곧바로 인식 하였습니다. Acer Ferrari 3400 에서 몇몇 사람들은 IBM 과 동일한 경우를 발견했지만 필자는 BIOS 에서 부팅 순서를 변경해 주어야 했습니다. 그리고 PCChips V21G 시스템에서는 F11 을 누르고 부트 메뉴로 들어가서 하드디스크 부트 서브메뉴 밑에 Generic USB 부트 드라이브를 선택해 주었습니다.

일단 부팅이 되면 DVD/CDROM 인스톨과 똑같이 보입니다. 오직하나, 인스톨 스크립트는 설치 컨텐트들이 /cdrom 에 마운트 되었다고 가정하고 있습니다. 그러므로 부팅은 오직 부분만 진행될 것이고 곧바로 #sh 프롬프트로 빠져나올 것입니다. 필자가 찾은 해결방법은 파일 시스템을 /cdrom 에 마운트 하는 것입니다. 그러나 마운트를 위해 논리적인 [usbslice] 를 찾는 것은 좀 더 어렵습니다. rmformat 유틸리티는 x86.miniroot 인스톨러에 포함되어 있지 않으므로 가장 좋은 방법은 /dev/usb/ 을 보고 전체 목록을 확인 한 다음 (ls -l mass-storage*) 경로를 관찰하는 것입니다. /devices 트리의 물리적인 경로를 가르키고 있는 항목을 여러가지 발견 할 수 있을것입니다. 정확한 경로를 찾는 것은 꽤 귀찮은 작업입니다 하지만 ../dsk/ 로 돌아가서 다시 전체 목록을 보다 보면 비슷한 슬라이스를 발견할 수 있을것입니다. 우리는 slice0 을 마운트 할 수 있는 경로를 원합니다. 이것은 보통 /dev/dsk/c1t0d0s0, /dev/dsk/c0t0d0s0 혹은 /dev/dsk/c2t0d0s0 입니다. 만약 확실 하지 않다면 3개 모두를 다음의 커맨드로 마운트를 시도해 보시기 바랍니다: # mount -o ro /dev/dsk/c1t0d0s0 /cdrom.

설치를 계속 하기 위해 몇몇 사람들은 /sbin/install-solaris 를 권장합니다. 그러나 우리는 초기 질문 즉 호스트이름, 네트워킹, 로케일 같은 것들에 도달하지 못했기 때문에 /sbin/install-begin 스크립트를 사용하는 것이 좋습니다.

주의사항

필자는 몇몇 시스템에서 성공적으로 설치할 수 있었습니다. 그리고 잘 부팅 되었습니다. 그러나 Xorg 가 올라오는데 실패 했고 이것이 폰트 패키지의 오류 혹은 Xorg 드라이버의 오류에서 기인한다고 생각했습니다. 또한 3개의 OS 를 부팅하는 랩탑에서 인스톨러가 Upgrade 모드로 들어가는 이슈들을 겪었습니다. 아직까지 몇몇 버그가 있는것으로 생각되고 몇몇은 플래시 드라이브에서의 데이타 오류와 연관이 있다고 생각 됩니다. 어쩄든 플래시 드라이브로 부팅하고 OS 를 올리는 작업 자체가 나쁜 시작은 아니었다고 생각됩니다. 이제 다음 단계는 install_media=[로컬 파일 시스템 경로] 같은 지원을 다른 사람들이 추가 시켰는지 확인해보고 USB 포터블 하드 드라이브를 이용해서 이러한 데이타 훼손 오류를 제거할 수 있는지도 알아봐야 합니다.

추가적으로 현재 솔라리스 설치는 약간 불안정합니다. 왜냐하면 현재 /cdrom 과 nfs 마운트 경로가 하드코딩 되어 있기 때문입니다. x86.miniroot 인스톨러에 접근이 가능하다면 어느 누구도 USB 드라이브 마운팅과 설치를 스크립트에 추가시킬 수 있을 것입니다. 이것은 한주가 넘게 걸릴 수도 있고 어느 누군가가 이미 했을 수도 있습니다.



이 컨텐츠의 영문 원본 컨텐츠 보기
http://blogs.sun.com/PotstickerGuru/entry/giving_usb_the_boot_install


"관리자코너" 카테고리의 다른 글

2007/08/20 14:36 2007/08/20 14:36

TRACKBACK :: http://blog.sdnkorea.com/blog/trackback/421

  1. USB로 부팅하기 - 설치

    Tracked from ★ dingpong의 조그만 휴식 공간 ★  삭제

    USB로 부팅하기 - 설치정보 입니다. 와우.. 굉장히 놀랐습니다. 이것이야 말로 굉장히 좋은 정보!! 보통 os 를 인스톨 하려면 하드디스크에 파티션을 다시 잡아야하고 좀 번거롭고 복잡합니다. 하지만 솔라리스는 usb 에도 설치된다는 사실!! 두둥! (물론 ms window 도 설치가 되려나요? 들은 적이 없어서-ㅁ-;;;) 어

    2007/09/19 23:42

댓글을 달아 주세요

  1. 송상화  수정/삭제  댓글쓰기

    USB메모리에 솔라리스 설치라.. 재미 있겠네요..
    4GB나 8GB짜리 USB 메모리만 있으면 한번 설치해 봐도 좋을것 같네요..

    2007/09/04 15:30
  2. 조문영  수정/삭제  댓글쓰기

    USB를 활용한 부트라... 나중에 시도를 해 보아야겠습니다.

    2007/09/04 16:48
  3. 유현아  수정/삭제  댓글쓰기

    좋은정보 감사합니다.

    2007/09/04 17:59
  4. 유광국  수정/삭제  댓글쓰기

    좋은정보에 감사드립니다..무궁한 발전을 기원해요

    2007/09/06 09:39
  5. 한용현  수정/삭제  댓글쓰기

    좋은정보 감사해요...항상 고마워

    2007/09/06 09:46
  6. 한은향  수정/삭제  댓글쓰기

    앞으로도 멋진 사이트로 남길 바래요

    2007/09/06 10:15
  7. 손영진  수정/삭제  댓글쓰기

    오오... USB로 부팅이 가능하다? 정말 대단합니다.
    그럼~ 조만간에 USB로 운영체제도 깔수 있는 그런 날이 곧 오겠네요..
    그럼 CD로 깔던 시대는 끝나겠죠..ㅋㅋ 암튼 좋은정보 감사드려요!!! ^^

    2007/09/06 10:43
  8. 김태완  수정/삭제  댓글쓰기

    좋은 정보 감사합니다. 유용한 정보라 활용가치가 높을 듯합니다.
    꼭 실천해봐야겠습니다.

    2007/09/06 12:53
  9. 오상기  수정/삭제  댓글쓰기

    편리한 USB가 솔라리스에서도 이렇게 활용될 수 있다니, 관리자들에게는 정말 좋아지는 세상이네요..
    저두 함 시도해 보겠습니다.
    감사합니다.

    2007/09/07 08:32
  10. 서지호  수정/삭제  댓글쓰기

    4기가짜리 usb를 구입해야한다는건 비용 측면에서 효율적인 것인지 생각하게 하지만, 유용한 정보임에는 틀림이 없네요.. 갈수록 각종 어플리케이션이나 시스템의 용량이 커지는데 더 효율적인 압축 방법이 빨리 나오길 아니면 더 빠른 메모리가 나오던지요.. 그런데 궁금한건 이런 패키지들이 왜 CD 혹은 DVD로만 나오죠 다른 타입으로는 만들수 잇는거 아닌가요.. 궁금하네요.. 읽기 전용으로 하려고 그러나요?
    하여간 좋은 정보 감사드려요

    2007/09/07 14:28
  11. 이성노  수정/삭제  댓글쓰기

    유용한 정보 감사합니다~~. 저도 한번 해봐야겠네요~

    2007/09/07 18:17
  12. 김석원  수정/삭제  댓글쓰기

    제가 잘 몰라서 그런데 혹시 opensolaris 설치부분에 관한 상세한 설명같은 글은 혹시 없는지요? 좋은 글 읽고 갑니다~!

    2007/09/08 00:25
  13. 김형철  수정/삭제  댓글쓰기

    유용한 정보 감사합니다.

    2007/09/10 10:16
  14. 이상수  수정/삭제  댓글쓰기

    정보 감사합니다 ^-^

    2007/09/10 13:59
  15. 우종성  수정/삭제  댓글쓰기

    정말 흥미로운 글이군요...

    저만 보기 아까워서 제 블로그에 정보 공유해도 되겠죠?

    잘 읽고 갑니다.

    http://tong.nate.com/flowertt/b1482268

    2007/09/10 16:52
  16. 이선복  수정/삭제  댓글쓰기

    재미있는 글이군요. 부팅시 AutoConfig만 참을 수 있는 시간 내 수행된다면 휴대전화의 USIM 처럼 플래시 메모리에 OS 및 Apps 를 설정하여 어디서든지 어떤 컴퓨터든지 자신만의 컴퓨터로 작동하도록 할 수 있겠군요. 물론 가까운 시간내에 나올것 같진 않지만요. ㅜ.ㅜ

    2007/09/11 16:24
  17. 김건희  수정/삭제  댓글쓰기

    가르쳐주셔서 감사합니다 _(__)_

    2007/09/12 14:20
  18. 김동수  수정/삭제  댓글쓰기

    이글은 Solarsi Big Admin Site에 영문으로 게시되었던 글을
    한글로 번역한 내용입니다.
    작성자를 보면 외국인이잔아요..
    당연히 고맙다고 댓글을 달아도 못알아 먹겠죠? ㅋㅋ
    USB 부팅일 얼마나 효율적일 지는 모르지만
    USB 4G짜리를 저렇게 허무하게 사용한다는 게 조금 아쉽네요.
    회사 돈으로 구매해서 한번정도 시도해보는 것도 좋은 방법이겠네요.

    2007/09/12 15:11
  19. 홍광일  수정/삭제  댓글쓰기

    재미있겠네요.
    하지만, 부팅시 걸리는 타임은 어느정도일까요?

    2007/09/12 15:56
  20. 최하영  수정/삭제  댓글쓰기

    와 이거 신기하네요....

    2007/09/13 10:49
  21. 고진구  수정/삭제  댓글쓰기

    항상 요긴한 정보로 도움을 많이 받고 있습니다. 자바 신기술 따라잡기에 썬 개발자 네트워크만큼 좋은 곳도 없나봅니다. 언제나 좋은 자료 감사합니다.

    2007/09/16 22:45
  22. 김현구  수정/삭제  댓글쓰기

    오호 정말 검토해볼만한 사항이라고 생각합니다. 좋은 자료 감사드립니다.

    2007/09/17 07:49
  23. 박정숙  수정/삭제  댓글쓰기

    좋은 정보 감사해요~

    2007/09/19 03:22
  24. 김덕경  수정/삭제  댓글쓰기

    좋은자료 많이 많이 올려주세요..감사

    2007/09/19 06:43
  25. 성덕경  수정/삭제  댓글쓰기

    유용한 정보 감사합니다.

    2007/09/19 13:09
  26. 이종민  수정/삭제  댓글쓰기

    직접적인 개발자가 아니라서 정확한 세부사항까지 이해하기는 어려웠지만 나름 좋은 지식공유가 된것 같아서 기쁘네요... 앞으로도 좋은 지식발견이 되었으면 좋겠습니다. 감사합니다...!

    2007/09/19 21:08
  27. 진유라  수정/삭제  댓글쓰기

    좋은 자료 많네요 많이 배우고 가요.

    2007/09/19 22:36
  28. 최인균  수정/삭제  댓글쓰기

    와우 좋은 정보네요^-^ usb 에 os 를 설치한다라!! 메모리 가격도 많이 낮아지고 보급화 되면서 이런 일이 가능한 것 같습니다. 굉장히 흥미로운데요.. 저도 얼릉 사서 한번 해봐야겠네요 _ ㅋ 담아갑니다~!!

    2007/09/19 23:43
[로그인][오픈아이디란?]

◀ Prev 1  ... 240 241 242 243 244 245 246 247 248  ... 641  Next ▶