플래시 드라이브에 임베디드 리눅스 설치하는 방법?

iwan2u의 이미지

안녕하세요
이제 막 리눅스를 공부하기 시작한 초보입니다.
다름이 아니라 제가 리눅스를 공부한다는 이유하나로 어떤일을 맡게 됬는데
이일을 처리하기가 막막하여 이렇게 질문을 드립니다.
Dell 서버가 있는데 이넘은 씨디롬이 없고 플로피 하나, 플래시드라이브 하나
그리고 스카시하드 이렇게 구성되어있습니다.
플래시드라이브는 다들 아시겠지만 플래시메모리를 IDE 하드처럼 쓸수있게
만든 넘입니다.
원래는 이넘이 리눅스로 부팅되어 Contents Delievery Manager 로 쓰이던
놈인데 하드웨어 에러로 인해 모든 파일시스템이 날라간 상황에서 다시 복구를
해야 합니다.
여기저거 찾아서 원래 이 서버에 쓰이던 xxx.sysimg(약12메가) 파일과
xxx.bin(약 110메가) 파일을 구했습니다. 근데 이걸 어떻게 서버에 올려야
하는지를 도대체 알수가 없네요..
플래시드라이브는 안에 있는 플래시메모리만 빼면 노트북 PCMCIA 에 붙여
아무문제 없이 쓸수가 있는 상태구요..
이 플래시에 위의 두파일을 가지고 부팅을 시키고 해야 하는데 도저히 방법을
모르겠습니다. 추측컨데 sysimg 파일이 부팅에 필요한 이미지
(커널 이미지?)이고 bin 파일이 나머지 리눅스 구동에 필요한 파일일거라고
하는 막연한 생각만 들고 있는 상태입니다.
맨처음 생각한건, 저 sysimg 파일을 rawrite 로 플래쉬에 써보자 하는거였는
데 rawrite 로 플래시에 쓸수가 없더군요.. ㅠ.ㅠ (혹시 방법이 있으면 알려주
세요.... )
또 다른 방법은 부팅디스켓을 만들고 플래시에 sysimg와 bin 파일을 넣은다음
부팅디스켓의 syslinux.cfg 파일내의
initrd=initrd.img root=/dev/hde1 부분에서 root=/dev/hda1 이렇게
바꿔보자는 것이었습니다. 서버에서 플래시드라이브를 hda1으로 인식할테니
까요.. 하지만 실패..
결국 더이상 해볼 방법이 저로서는 없게 되었습니다.
일단 플래시드라이브로 부팅만 가능하게 할수 있다면 해볼 방법이 또 있을것
같은데 디스켓으로 부팅해서는 도저히 다른방법이 없는듯 합니다..
플래시로 부팅이 된다면 syslinux.cfg내에 initrd=xxx.sysimg
root=/dev/hdxx (bin 파일이 들어있는 플래시드라이브 명칭)으로 변경해서
가능할듯 싶거든요...

다시 정리하자면...
1. xxx.sysimg 파일과 xxx.bin 파일을 가지고 이 서버에 어떻게 리눅스를
설치할수 있는가?
2. 만약에 sysimg 파일이 부팅 이미지 라면 이걸 어떻게 플래시드라이브에
raw write 할수 있는가?
3. cd롬이 없고 플로피와 하드만 있는 컴퓨터에 리눅스는 어떻게 설치할수 있는
가? (하드에는 시스템 이미지와 OS 파일이있지만 부팅은 안된다)

이렇게 정리될거 같습니다...
모르는것 투성이니 질문을 제대로 하고 있는지도 의심스럽지만 여러분들의
조그마한 조언이라도 부탁드립니다.... (__)

iwan2u의 이미지

플래시 드라이브 (?) 는 SANDisk 사의 Compact Flash 128M 입니다..
계속 검색을 하다보니 DOM 이라고 하는것도 알게됬네요...
아직 제 환경에 맞는 설치 방법은 찾지 못했습니다..
CF 로 부팅하게는 어떻게든 할수 있겠는데 가지고 있는 xxx.sysimg 파일을
어떻게 불러들여야 하는지를 모르겠네요...

저 sysimg 파일이 embeded linux 라고 불리는 이미지라고 생각되는데...
저걸 어케 설치해야 할런지..... cry

돈 worry 非 Happy ;-)

익명 사용자의 이미지

일단 배포판 만드는 법을 아시면 될것인데 만만치 않죠.?

일단 제가 설명 드리는 것은 그냥 간단한 구성일뿐 그 다음부터는 직접 하셔야 합니다.

일단 부팅 절차를 알면 쉽게 이해가 갈겁니다.

Kernel이 일단 부팅되면 init 또는 bash를 찾습니다.

저는 bash를 예로 해보겠습니다.

bash가 실행되면 실행계정의 .bashrc를 읽어 실행해줍니다.

이제 뭔가 감이 오시는지 모르겠네요.

1. 일단 Flash를 파티션 1개로 통으로 잡습니다. ext2로요.
2. 포맷합니다.
3. 디렉토리를 만듭니다.
/usr/bin, /usr/lib, /lib, /etc, /bin, /lib/modules. /dev
그 밖의 디렉토리는 나중에 한다고 생각하시고....
4. /bin 에다가 bash 를 넣습니다.
5. "ldd bash" 이렇게 하면 필요한 *.so 의 파일들이 열거됩니다.
이것들을 몽땅 찾아서 /lib에다가 꾹꾹 넣습니다. (몇개 안됩니다.)
6. 기본적인 ifconfig, cp, mv, mount, ftp, lilo, vi, ... 기타 필요한것들
이것들은 5번 방법처럼 검사해서 해당 *.so들을 찾아 넣습니다.
7. Kernel을 lilo를 이용하여 설치합니다.
(module은 /lib/modules에 집어넣는거는 당연한거죠.)
(/dev 에는 일반적인 배포판의 /dev를 몽땅 복사하시고요.)

여기까지가 아주 작은 배포판의 골격입니다.
그 다음에는 플래쉬로 부팅하셔서 여러가지 꾸며봅니다.

일단 처음 부팅하면 네트웍도 안됩니다.
/etc/ 에 관련 파일들도 없고 rcS.d 도 없고......
하나씩 복사해가면서 해보면 알게 됩니다. 생각보다 어렵지 않다는 것을.....

maximus의 이미지

DOC 의 경우는 커널을 다시 컴파일 하셔야 합니다만..
DOM 의 경우는 그냥 IDE 디스크로 인식하는 모양이죠 ?

혹시나 해서 ^^
그리고 mini 배포본 자료가 인터넷에 아주 많습니다.. 공개 자료도 많구요..
기본적으로 1 디스크 라우터 프로젝트를 참고 하시면 도움이 많이 될겁니다..

kldp.org 메인 페이지에서 키워드로 찾으면 나올꺼에요..
(죄송합니다.. 게으름의 압박이.. --;)
그리고 img의 경우 루프에 풀어서 보시면 되구요..

=================================
:: how about a cup of tea ? ::
=================================

iwan2u의 이미지

친절한 답변 감사드립니다. ^^
그런데 궁금한것이 있는데요....
제가 가지고 있는 xxx.sysimg 파일이 미니리눅스 (임베데드리눅스) 일거 같은데
그렇다면 위에서 말씀하신 플래시에 배포판 만드는 작업은 하지 않아도 되는거 아닐까요??
이미 sysimg 에 다 들어있다고 보여지므로...
간단히 생각해서 리로나 다른 부트로더에서 이 sysimg 파일을 불러서 로딩만 시키면 되지 않을까.. 라는 단순한 생각이... ^^;;;
lilo.conf 편집에서 image= 이 부분에 저 sysimg 파일을 대체해서 지정해 주면 되지 않을런지.... ㅜ.ㅡ
근데 지금은 플래시로 부팅하게 만드는 것도 실패의 연속입니다...
리눅스 깔려있는 노트북에 PCMCIA 로 플래시 붙여서 작업하다가 나중에
lilo-C 명령을 쓰면 1024 실린더 이후라서 안된다는 메시지가 뜨네요....
기초가 없는 상태에서 하려니 걸리는게 한두가지가 아닙니다..
어쨌든 저의 생각은 DOM 을 부팅가능하게 만들어서 lilo.conf 수정하여
가지고 있는 sysimg 파일을 지정하고 root= 이 부분도 가지고 있는 xxx.bin
파일을 지정하여 해볼생각입니다.
가능할까요??
크어~. 하지만 먼저 부팅이 가능해야.... ㅠ.ㅠ
쉽게 설명해 놓은 자료 없을까요... 플래시 또는 DOM 으로 부팅하기...

돈 worry 非 Happy ;-)

iwan2u의 이미지

제가 가지고 있는 sysimg 파일을 winimage로 열어보려고 하니 열리지가 않네요....
그렇다면 이 이미지 파일을 lilo.conf 의 image= 부분에 지정을 해도
리눅스가 읽지 못할거 같다는 불안한 느낌이 드네요....
winimage 가 읽지 못하더라도 리눅스가 읽을수 있는건가요?
그리고 만약 리눅스가 읽지 못한다면 이 sysimg를 DOM 에 Raw write 해야
하는건 아닐까요?
부팅에 관한 정보도 이 sysimg 파일안에 다 포함되어 있을가능성도 있지 않을까 하는 생각이 듭니다. 만약 그렇다면 이 이미지를 DOM 에 순서대로 Raw write 하면 되지 않을런지....
배보본에 있는 rawrite 유틸리티로는 플로피에만 쓸수가 있던데, 이 DOM 에 raw write 할수 있는 방법은 없을까요??

돈 worry 非 Happy ;-)

nainu의 이미지

raw write 라면 dd 를 이용하시면 될 것 같습니다.

일단 부팅은 되는 상황이신가요?
스카시 하드에 오에스를 설치해 그 하드로 부팅을 하여 작업해야 할 듯 합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.