부트 디스크 제작할때 안됩니다. 꼭좀 부탁드립니다.

익명 사용자의 이미지

안녕하세요
제가 이곳에 시스템 관리 -> 부팅과정 -> Bootdisk HOWTO (김현종) 문서
를 보고
부트 이미지를 만들어서 부팅 디스크를 만드는 것을 하다가 안되는 것이
있어서
이렇게 질문을 올립니다.
제가 만들려는 부팅 디스크는 플로피가 아니구요 DOM(DISK ON MODULE) 이
라고 하는
64메가 짜리 메모리 입니다. (하드디스크처럼 IDE 에 꽃아서 쓰구요 사용
하는건
하드랑 똑같습니다)
이곳에다가 루트파일시스템을 압축해서 이미지로 만들어 부팅시에 이 이
미지를
램디스크에 풀어서 램디스크가 루트 파일 시스템으로 부팅이 되게끔 하려
고 하는데
잘 안되네요...
참고로 압축 이미지 없이 바로 필요한 파일들만 DOM 상에 올려서 lilo 세
팅하고 부팅하면
잘 돌아 갑니다.

1. lilo 설치하기
문서에 6장을 보면 커널 이미지 담기라고 해서 lilo 를 설정해 주는 부분
이 있습니다.

> ==============================================================
먼저, 파일시스템의 크기를 얼마로 해야할지 알아내야 합니다. 만들어낸
커널의 블록 단위 크기가 얼마인지 확인하고("ls -s KERNEL" 명령으로
알수 있습니다), 거기에 50 을 더합니다. 50 블록은 inode 와 그 밖의
몇 가지 파일들에 필요한 대략적인 크기입니다. 원하신다면 정확히 계산

볼 수도 있습니다. 아니면 그냥 50 을 사용하세요. 두장의 디스켓으로
만든다면 첫번째 디스크는 어쨌든 커널전용으로만 사용될테니 이 크기

더 넉넉하게 잡아도 좋습니다. 계산한 숫자를 KERNEL_BLOCKS 라고 부르
기로
합시다.

플로피 디스켓을 드라이브에 넣고 그 위에 ext2 커널 파일시스템을 만듭
시다
(편의상 드라이브의 이름은 /dev/fd0라 가정합니다).

mke2fs -N 24 -m 0 /dev/fd0 KERNEL_BLOCKS

"-N 24 " 는 inode 수를 24 개로 설정합니다. 이 파일시스템에 필요한
inode 수는 24 개면 됩니다.그 다음, 이 파일시스템을 마운트하고
lost+found 디렉토리를 삭제한 후 LILO 를 위한 dev 와 boot 디렉토리를
만듭니다.

mount /dev/fd0 /mnt
rm -rf /mnt/lost+found
mkdir /mnt/{boot,dev}

그 다음, 디바이스 /dev/null 과 /dev/fd0 를 만듭니다. 디바이스 넘버

찾는 대신 그냥 당신 시스템의 하드디스크로부터 -R 옵션을 주어 복사해
오면 됩니다. cp -R /dev/{null,fd0} /mnt/dev

LILO 는 그 부트로더인 boot.b 의 복사본을 필요로 하는데, 이 boot.b
는 하드디스크에서 가져오면 됩니다. 보통, 이 파일은 /boot 디렉토리에
있습니다.

cp /boot/boot.b /mnt/boot

마지막으로, 앞 절에서 만든 LILO 설정파일과 커널을 플로피로 복사해 넣
습니다.
두 가지 모두 루트 디렉토리에 들어갑니다.

cp bdlilo.conf KERNEL /mnt

이제 LILO 가 필요로 하는 모든 것들이 커널 파일시스템에 들어갔으므로
준비는
모두 끝났습니다. LILO 의 -r 플래그는 부트로더를 다른 루트에 설치할
때 사용됩니다.

lilo -v -C bdlilo.conf -r /mnt

LILO가 아무 에러도 없이 제대로 동작했다면 커널 파일시스템은 다음과
비슷한
모습이 될 것입니다.

total 361
1 ?rw?r??r?? 1 root root 176 Jan 10 0722
bdlilo.conf
1 drwxr?xr?x 2 root root 1024 Jan 10 0723 boot/
1 drwxr?xr?x 2 root root 1024 Jan 10 0722 dev/
358 ?rw?r??r?? 1 root root 362707 Jan 10 0723 vmlinuz
boot
total 8
4 ?rw?r??r?? 1 root root 3708 Jan 10 0722 boot.b
4 ?rw??????? 1 root root 3584 Jan 10 0723 map
dev
total 0
0 brw?r????? 1 root root 2, 0 Jan 10 0722 fd0
0 crw?r??r?? 1 root root 1, 3 Jan 10 0722
null

>===================================================================
==========

이런 내용 인데요..
이거 제대로 안되던데요...
우선 lilo.conf 파일을 만들어서 설정 다 맞추고
다음에 위에 설명대로 다 한다음 마지막으로
lilo -v -C bdlilo.conf -r /mnt

부분을 실행하면 lilo 가 정상적으로 실행되거든요..
근데 이렇게 하고 부팅을 하면 DOM 설정에 맞춘 lilo 내용이
하드디스크 (현재 부팅된 파일시스템)의 MBR에 덮어 써 버렸더군요
결국 하드디스크로 부팅하면 커널 패닉 (루트파일시스템을 못찾음) 이라

떠버리고, DOM 에는 lilo 가 안올라간 상태 그대로 입니다.
혹시나 해서 chroot 로 마운트된 DOM 으로 루트를 바꾸고 lilo 를 실행해

마찬가지구요.
방법이 없네요...
현재 부팅된 파일시스템 말고 다른 파일시스템에 lilo 를 설치하는 방법
이 없나요?
왜 저는 저렇게 하면 부팅된 파일시스템의 MBR에만 자꾸 쓰는지 모르겠습
니다.

2. lilo 없이 커널만 담기

>===================================================================
==========
LILO 를 사용하지 않겠다면 dd 명령을 써서 커널을 부트디스크에 담아야
합니다.

% dd if=KERNEL of=/dev/fd0 bs=1k
353+1 records in
353+1 records out

위의 예에서 dd 는 353 개의 완전한 레코드와 1개의 부분레코드를 써넣었
습니다.
따라서 커널은 디스켓 앞부분의 354 블록들을 점유하게 됩니다. 이 숫자

KERNEL_BLOCKS 라고 부르겠으니 기억해 두십시오. 다음 절에서 사용할 것
입니다.

마지막으로 루트디바이스를 디스켓 자체로 설정한 후, 루트가 읽기/쓰기

가능하게 로드되도록 설정합시다.

rdev /dev/fd0 /dev/fd0
rdev -R /dev/fd0 0

두 번째 줄의 rdev 명령에서 대문자 -R 을 써야함에 주의하세요.

>===================================================================
=========

위와 같은 내용인데요..
저렇게 해도 부팅 안되던데요?

dd if=/boot/vmlinuz-2.4.2-2 of=/dev/hdc1 bs=1k

하면 정상적으로 써 집니다.
그리고 rdev 부분도 모두 에러없이 잘 되고요..
근데 저렇게 하고 나서 부팅을 하면 부트 시스템을 찾을수 없다고만
나옵니다.
커널을 저렇게 바로 쓰기만 하면 부팅이 되는가요?
아무래도 부트 로더가 MBR에 있어야 하지 않나요?
그런 얘기는 언급이 없네요..

물론 저 내용 다음에 나오는 압축된 루트파일 시스템 쓰는 부분도 모두
한 상태로 해 봤습니다.
이거 꼭 필요한거라 해야 하는데 1주일 동안 해결 안되서
끙끙 거리고 있습니다.
ramdisk Word 설정 부분도 제대로 된건지 확실히 알 수 없어서
찜찜하고...

참... 마지막으로 또 한가지 질문이요.. (^^;; 참 많죠)
mkinitrd 라는거 있죠?
어디선가 보니깐 ramdisk 로 이미지를 로딩하는데 mkinitrd 로
initrd 이미지 파일을 만드는 것을 봤는데요

mkinitrd /boot/initrd-2.4.2-2.img 2.4.2-2

이렇게 사용법이 있는데... (커널 버전은 물론 제 시스템에 맞춘거구요)
이거 실행하면 현재 모든 루프백 디바이스가 사용중이라 할 수 없다고만
나오네요
분명 /dev/initrd 라는 파일두 있는데....
룹백 디바이스가 없어서 그런가요? 커널 컴파일 해서 사용하도록 설정 해
주어야 가능한건지... 아니면 룹백 디바이스를 사용하지 않고 실행할 수
있는
방법은 없는지 궁금합니다.

그럼 꼭 답변 부탁드립니다. ^^;

댓글 달기

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