CF카드에 리눅스 올리기

sa2co의 이미지

CF카드에 리눅스를 올리려고 합니다.

- 타켓보드: AMD LX-800 (i386계열)
- RAM: DDR 512M
- HDD: CF카드 512
- OS: Fedora6

http://wiki.kldp.org/HOWTO/html/Bootdisk-HOWTO/
http://wiki.kldp.org/wiki.php/LinuxdocSgml/Hard-Disk-Upgrade

위의 내용데로 해봤는데 기존에 설치된 HDD에서 저용량(512M)으로 옮기려니
커널 패닉이 나네요

좋은 방법이 없을까요?

ironiris의 이미지

음... Damn Small LINUX 로 해보는 것은 어떨까요?
이왕하는거 좀 최근 것이 좋지 않을까요?

sa2co의 이미지

ironiris님 답변 감사합니다.

DSL은 잘 몰랐는데.. 기존 LiveCD에 비해 좋은것 같습니다.

그런데 제가 지금 보드하나 갖구 리눅스박스를 만들고 있는 중이라
제약 사항이 없을까 걱정이네요^^
아무튼 한번 설치해 봐야겠네요~

감사합니다.

런맨의 이미지

8. /etc/fstab을 적절하게 변경하기
만일 당신의 새로운 디스크가 예전 디스크와는 다르게 파티션구조를 가지고 있다면, /etc/fstab파일을 새로운 디스크에 맞도록 적절하게 변경해야 한다. 기억해둘 것은 해당파일 이 /new-disk/etc/fstab에 있다는 사실이다.(/etc/fstab/은 예전 디스크에 해당함)

위에 링크 방법대로 하셨으면
가장 의심되는 부분이네요

kerenl에서 cf를 인식하는지 확인하시고 cf 어떤장치로 인식되는지 보시고
8번을 적절하게 수정하세요

인생은 도박이다.

sa2co의 이미지

런맨님..

기존 HDD와 파티션 구조를 비슷하게 한다고 했는데...
아래는 기존 HDD와 새로운 HDD(CF)의 파티션 구조입니다.

fdisk 후 exfs.ext3 후
기존 HDD의 내용중 /boot는 새로운 HDD의 /sd1에 옮겼고
기존 HDD의 내용중 나머지는 새로운 HDD의 /sd2에 옮겼습니다.

런맨님 말씀처럼 fstab에서 뭔가 문제가 있는것 같은데..
에러메세지를 보면 "/dev/VolGroup00/LogVol00" + /proc + /sys"등을 못찾는것 같은데
분명 디스크 안에는 위의 내용이 들어 있습니다.

또한 기존 HDD에서 CF카드로 내용을 옮기고 grub 부트로도를 설치 후 부팅하니
"file not found" 에러 메세지가 발생하여 group.conf에서 "vmlinuz-...." 과 "initrd-..." 앞에
/boot/ 경로를 입력하였습니다.

======================== 기존 HDD 파티션 =========================
Device Boot Start End Blocks Id System
/dev/hda1 * 1 13 104391 83 Linux
/dev/hda2 14 19457 156183930 8e Linux LVM

===================== 새로운 HDD(CF카드) 파티션 ===================
Device Boot Start End Blocks Id System
/dev/sda1 * 1 30 14609+ 83 Linux //기존 시스템에서 CF카드는 sda로 인식합니다
/dev/sda2 31 1021 483608 8e Linux LVM //기존 시스템에서 CF카드는 sda로 인식합니다

=============================== fstab 내용 ================================
[root@localhost ~]# cat /etc/fstab
/dev/VolGroup00/LogVol00 / ext2 defaults 1 1
LABEL=/boot /boot ext2 defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0

===================== !!부팅 중 에러 메세지!! =====================
Uncompressing Linux... Ok, booting the kernel.
ACPI: Unable to locate RSDP
i8042.c: Can't read CTR while initializing i8042.
Red Hat nash version 5.1.19 starting
Reading all physical volumes. This may take a while...
No volume groups found
Volume group "VolGroup00" not found
Unable to access resume device (/dev/VolGroup00/LogVol01)
mount: could not find filesystem '/dev/root'
setuproot: moving /dev failed: No such file or directory
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
switchroot: mount failed: No such file or directory
Kernel panic - not syscing: Attempted to kill init!
=============================================================

mrjh76의 이미지

KELP에서 글 보았었는데,,,
아직 잘 해결이 않되신 모양이네요!
아주 쉽게 접근할 방법을 하나 알려드리죠!
리눅스 배포판 설치시 대부분의 파일은 /usr 에 저장됩니다!
즉, CF와 HDD 두개를 연결하고, HDD에 /usr 가 되게끔 설치를 하세요!
그리고 차근차근 /usr(HDD)의 내용을 하나씩 줄여보세요!
부팅 문제니,, 장치 문제니,, 이런 걱정없이 시작할 수 있을거예요!
참, 그리고 매체가 CF 이니, 파일시스템은 그냥 ext2를 쓰는게 좋을거예요!

위 과정으로 어느정도 내용이 익숙해 지시면,
커널도 새로 컴파일 해보시고, 또 http://busybox.net/ 에 방문하셔서,
기존 툴과, 라이브러리들의 크기를 줄이는 방법들을 익혀보세요!

sa2co의 이미지

안녕하세요? mrjh76님!

사실 처음엔 커널컴파일하고, 루트파일시스템 만들고, 램디스크로만들어서, 부트로더올리고
이렇게 하려고 시도 했으나 이런 방법들이 ARM, PPC등의 크로스컴파일을 하기위한 내용들 밖에 없어
삽질하던 끝에 지금하고 있는 방법으로 다시 시도하고 있습니다 ㅜ.ㅜ;

KELP에서 보셨다고 하니, 혹 x86에서 크로스컴파일과 같은 절차로 시스템을 구축할 수 있는 방법이 있을까요?
x86에서 크로스컴파일이 가당치 않다면 어떤 방법이 있을까요?

사실 가지고 있는 보드에서 커널컴파일을 성공했으나 시간이 꽤 걸리네요^^
아무튼, 많은 분들이 성심껏 답글 남겨주시니 감사할따름입니다~^^

mrjh76의 이미지

뭔가 잘못 생각하고 있는듯하네요!!!

1. 크로스컴파일 (?)

개발머신은 X86인데, 타겟이 ARM이나 PPC라면, 당연히 개발머신에서 개발한 프로그램이 타겟에서
실행되지 않겠죠? 그래서 타겟환경에 맞춰서 컴파일 될 수 있도록 크로스컴파일 환경을 만드는것입니다.

즉, sa2co님의 경우는 아마도 개발환경과 타겟환경이 동일한 X86이므로 별도의 크로스컴파일 환경이
필요하지 않습니다. 그냥 개발환경에서 개발하여, 타겟에 복사하면 잘 실행될 겁니다!

단, 타겟이 X86이긴 하지만, i386 호환 보드입니다.
만약 i585 이상의 기능을 써서 프로그램을 구성한다면 문제가 될 수 있겠네요!

제 기억에 일반 배포판을 LX 보드에 구동하게 될 경우, kernel과 glibc 패키지가 문제가 될 것니다.
보통, 배포판을 설치하게되면, kernel, glibc의 경우는 i386, i686 이런식의 패키지가 존재하며,,,
대부분 i686용 패키지가 설치됩니다.

그러니,,, 위에 답변 달아드렸듯이 그냥 타겟보드 잘 연결하고 배포판을 설치해 보세요!
단, 위에 글들 보니,,, LVM 같은 불필요한 기능은 사용하지 마시고요...

2. 루트파일시스템

일반 배포판을 설치하고, 잘 다듬어서 크기를 줄이는 것도 일종의 루트파일시스템이라고 할 수 있습니다.
이 루트파일시스템을 작업환경에 맞춰서 잘 구성하는것이 아마도 가장 큰 일이 아닐까 싶습니다!

특정 환경에 맞춰서 구성된 루트파일시스템들이 많이 있으니, 찾아서 참조 하실수 있을겁니다.
혹은, 'DiskOnModule 에 리눅스...' 와 같은 문구로 검색하셔도 될겁니다!

3. 램디스크

루트파일시스템을 그냥 CF에서 사용하실수도 있고, 임베디드 환경처럼 램디스크 이미지로 만들어서
램디스크에서 운영하실수도 있습니다.
램디스크에서 운영하시려면, 일단 2번 루트파일시스템을 줄이고 줄여서,,, 구성할 수 있습니다. (일단 통과!)

4. 부트로더

보통 임베디드 환경에서는 부트로더를 만들거나 기존의 것을 좀 고쳐서 사용합니다.
sa2co님의 환경에서는 일반 부트로더인 lilo, grub 등을 그냥 사용하면 됩니다!

저는 일단, 타겟보드에 용량큰 CF 넣고 리눅스부터 설치해 보라고 권하고 싶습니다!
그리고 자료 하나씩 찾아보면서, 필요없는거 지워보고... 줄여보고 하세요!!!

sa2co의 이미지

다시 시도해 봐야 겠네요..
감사합니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.