2007년 10월 1일 월요일

부팅디스크 건들이기

1.44MB 플로피 디스크

  • 1.44MB 의 플로피 디스크은 고밀도(HD)디스크이므로섹터당 바이트는 512바이트 이며 트랙당 섹터는 18개 입니다. 물론 트랙은 80개 이구요. 한면에 80트랙씩 양면으로 구성되어 있습니다. 그러므로 512 X 18 X 80 X 2 = 1,474,560 입니다.
  • 플로피 디스크 이미지 만들기 : dd
    dd if=/dev/fd0 of=/home/sam/floppy.image bs=2x80x18b conv=notrunc 또는 dd if=/dev/fd0 of=/home/sam/floppy.image conv=notrunc

    18b 는 18 sectors of 512 bytes를, 2x 는 head 숫자 만큼 sector size를 배로 늘리며 (플로피 디스크는 양면이므로), 80x 는 cylinders 수입니다. (따라서 모두 1474560 bytes) 위의 명령어로 a single 1474560-byte read request to /dev/fd0와 a single 1474560 write request to /home/sam/floppy.image를 하며, hard drive image of the floppy, with bootable info intact를 만듭니다. 두번 째 명령어에서 default "bs="는 512입니다. (the sector size of a floppy)

    conv=notrunc option
    Without notrunc, multiple blocks of zeros get abbreviated with a string of asterisks, saving a lot of space. if you use notrunc, all the zeros will be written out.
  • 플로피 디스크 이미지 만들기 : cat
    cat /dev/fd0 > floppy.flp (다른 예로 cat /dev/cdrom >cdromimage.iso)
  • 플로프 디스크 이미지에서 플로피 디스크 만들기
    dd if=/home/sam/floppy.image of=fd0 bs=2x80x18b conv=notrunc
  • 참고로 플로피 디스크 이미지로 새 플로피 디스크를 format하려면
    전에 사용한 적이 없는 포맷된 빈 플로피 디스크에서 플로피 디스크 이미지를 만듭니다.
    dd if=/dev/fd0 of=/home/sam/floppy.bin
    플로피 드라이브에 포맷하려는 플로피 디스크를 넣은 후
    dd if=/home/sam/floppy.bin of=/dev/fd0

    참고로 1.44MB diskette image는 다른 확장자로 이름을 바꾸어 사용할 수 있습니다. VMware는 FLP를 사용하며,WinImages는 IMA를 사용하지만 같은 구조로 보입니다.

MBR & boot sector

  • 하드디스크의 MBR과 파티션 테이블을 백업
    dd if=/dev/sda of=/home/sam/MBR.image bs=512 count=1
    백업한 하드디스크의 MBR과 파티션 테이블을 복구
    dd if=/dev/sda of=/home/sam/MBR.image bs=512 count=1
    위의 MBR.image (512바이트)에서 파티션 테이블을 제외한 MBR만 복구하려면 다음과 같이 합니다.
    dd if=/home/sam/MBR.image of=/dev/sda bs=446 count=1
    물론 처음부터 하드디스크의 MBR만 백업하려면
    dd if=/dev/sda of=/home/sam/MBR.image bs=446 count=1

  • 특정 파티션의 부트섹터를 파일로 저장하여 윈도우XP로 멀티부팅
    dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1
    위의 bootsect.lnx를 윈도우 XP의 boot.ini 파일에서 마지막 줄에 아래와 같이 써넣습니다.
    c:\bootsect.lnx="리눅스"

Grub으로 윈도우 멀티 부팅

title WindowsXP (on /dev/hda1)
unhide (hd0,0)
hide (hd0,1)
rootnoverify (hd0,0)
makeactive
chainloader +1

title WinTesting (on /dev/hda2)
unhide (hd0,1)
hide (hd0,0)
rootnoverify (hd0,1)
makeactive
chainloader +1

시디롬 없이 하드디스크에서 부팅하여 설치하기

기존 컴퓨터에 linux가 설치되어 있으면 GRUB을 이용하여 시디 없이 설치할 수 있습니다.

데비안
  • 기존 리눅스로 부팅한 상태에서 알맞은 곳 (여기서는 /new-install/etch)에 2개의 파일을 저장합니다.
    여기(etch)에서 32 bit인 i386의 linux와 initrd.gz을 새로 만든 디렉토리 /new-install/etch에 저장합니다.
    64 bit인 amd-64의 lenny에 해당하는 linux와 initrd.gz은 여기에서 구할 수 있습니다.

    기존 리눅스 시스템의 /boot/grub/menu.lst에 부팅할 메뉴를 만듭니다.
    # nano -w /boot/grub/menu.lst

    다음과 같이
    title Debian (Etch) Install Disk
    kernel (hd1,1)/new-install/etch/linux
    initrd (hd1,1)/new-install/etch/initrd.gz
우분투
  • LiveCD를 하드디스크에 저장한 후 grub으로 LiveCD로 부팅하여 설치

    받은 liveCD (iso)을 마운트 한후에
    # mount -t iso9550 -o loop liveCD.iso /media/live-cd

    CD (iso)을 파일을 임의의 파티션에 저장합니다.
    # cp -r /media/live-cd/* /new-install/ubuntu
    # cp -r /media/live-cd//.disk /new-install/ubuntu

    grub 설정파일 (/boot/grub/menu.lst)에 다음을 추가합니다.

    title Ubuntu Live CD
    root (hd0,0)
    kernel /casper/vmlinuz boot=casper root=/dev/ram ramdisk_size=1048576 rw
    initrd /casper/initrd.gz

    * root (hd0,0)은 시스템에 맞게 고쳐야 합니다.

  • 부팅 파일만 저장하여 grub으로 부팅하여 설치하기 (Netboot설치로 데비안과 비슷)

    여기에서 구할 수 있습니다. 32 bit용의 linux와 initrd.gz를 임의의 디렉토리 /new-install/ubuntu에 저장합니다.

    grub 설정파일 /boot/grub/menu.lst에 다음과 같이 기록합니다.
    title Ubuntu Network Install
    root (hd0,0)
    kernel /new-install/ubuntu/linux
    initrd /new-install/ubuntu/initrd.gz
    boot

    * root (hd0,0)은 시스템에 맞게 고쳐야 합니다.

MEPIS
  • MEPIS 리눅스 (Live CD임)는 CD-ROM에 있는 파일을 하드 디스크에 저장하면 시디롬 없이 부팅할 수 있습니다.
    1. MEPIS 설치 CD (SimplyMEPIS-CD_7.0-rel_32.iso)와 다른 파티션를 mount합니다.
      # mount -t iso9660 -o loop SimplyMEPIS-CD_7.0-rel_32.iso /media/cdrom
      # mount -t ext3 /dev/hdb2 /media/hdb2

    2. CD 파일 복사
      # cp -rp /media/cdrom/* /media/hdb2/

    3. 기존 리눅스 grub boot loader에 아래와 같이 추가합니다.

      title MEPIS Install Disk
      root (hd1,1)
      kernel /boot/vmlinuz root=/dev/hdb2 apm=power-off vga=791 quiet
      initrd /boot/initrd.gz
      boot

댓글 없음: