'mkisofs'에 해당되는 글 2건

  1. 2009.07.06 GRUB for DOS boot code to MBR
  2. 2008.10.27 리눅스(Linux) 시스템 및 데이타 백업(Data Backup)
2009. 7. 6. 15:41

GRUB for DOS boot code to MBR

Installation

There are many ways to install GRUB for DOS. Some of them require modifying MBR or partition boot sector, while others require changing system startup configuration files.

Install GRUB for DOS boot code to MBR

You can use bootlace.com or grubinst.exe to install GRUB for DOS boot code to MBR:

bootlace.com can be used in DOS, Windows 95/98/Me and Linux. Examples:

Install GRUB for DOS boot code to the MBR of first hard drive under DOS, Windows 95/98/Me:

   bootlace 0x80

Install GRUB for DOS boot code to the MBR of IDE channel 0, primary drive under Linux:

   bootlace /dev/hda

Install GRUB for DOS boot code to the MBR of hard drive image file aa.dsk:

   bootlace aa.dsk

grubinst.exe can be used in Linux, FreeBSD and Windows NT family OSs (Windows NT/2000/XP/2003/Vista). Examples:

Install GRUB for DOS boot code to the MBR of first hard drive under Windows NT family OSs:

   grubinst (hd0)

Install GRUB for DOS boot code to the MBR of IDE channel 0, primary drive under Linux/FreeBSD:

   grubinst "(hd0)"

You can also use device names:

   grubinst /dev/hda  (Linux)
   grubinst /dev/ad0  (FreeBSD)

Install GRUB for DOS boot code to the MBR of hard drive image file aa.dsk:

   grubinst aa.dsk

There are many options you can use with bootlace and grubinst, use the -h option to display help message.

After installing the boot code, you need to copy grldr and menu.lst to the root directory of any FAT16/FAT32/NTFS/EXT2 partition.

Install GRUB for DOS boot code to partition boot sector

You can use grubinst to install GRUB for DOS boot code to partition boot sector. Examples:

Install GRUB for DOS boot code to the first primary partition of the first hard drive:

   grubinst (hd0,0)

or

   grubinst --install-partition=0 (hd0)

or

   grubinst -p=0 (hd0)

Install GRUB for DOS boot code to the first primary partition of the hard drive image file aa.dsk:

   grubinst --install-partition=0 aa.dsk

or

   grubinst -p=0 aa.dsk

Just as in GRUB, extended partition starts with (hd0,4).

After installing the boot code, you need to copy grldr and menu.lst to the partition which you install the boot code on.

Starting GRUB for DOS from DOS

You can use load GRUB for DOS in config.sys using one of the following lines:

   DEVICE=GRUB.EXE
   INSTALL=GRUB.EXE
   SHELL=GRUB.EXE

grub.exe can also be launched from DOS prompt or batch file such as AUTOEXEC.BAT.

Starting GRUB for DOS from Linux

First, you need to apply the kexec patch to the Linux kernel.

Then, you can use the following commands to launch GRUB for DOS from linux:

   kexec -l grub.exe
   kexec -e

Booting GRUB for DOS via the Windows NT/2000/XP/2003 boot manager

Add the following line at the end of boot.ini (this file is hidden):

   C:\grldr="Start GRUB4DOS"

Then copy grldr to C:\, and create the GRUB4DOS configuration file at C:\menu.lst.

Next time you start windows, there is a new option "Start GRUB4DOS" which can be used to start GRUB for DOS.

Booting GRUB for DOS via the Windows Vista boot manager

Use bcdedit to configure the startup menu:

   bcdedit /create /d "Start GRUB4DOS" /application bootsector
   bcdedit /set {id} device boot
   bcdedit /set {id} path \grldr.mbr
   bcdedit /displayorder {id} /addlast

Then copy grldr.mbr to C:\, grldr and menu.lst to the root directory of any FAT16/FAT32/NTFS/EXT2 partition.

Note: previous version of grldr.mbr can also be used in boot.ini of Windows NT/2000/XP/2003. But it doesn't work anymore with the latest version.

Loading GRUB for DOS using other boot loader

grub.exe can be loaded as a linux kernel.

Load GRUB for DOS using GRUB or another copy of GRUB for DOS, add the following section to menu.lst:

   title Load GRUB4DOS
   kernel /grub.exe

Load GRUB for DOS using syslinux, add the following section to syslinux.cfg:

   label GRUB4DOS
           KERNEL grub.exe

Booting DOS/Windows 9X/Windows NT startup files

In GRUB for DOS, you can load the DOS/Windows 9X/Windows NT startup files directly.

DOS, Windows 95/98/Me:

   title Load io.sys
   root (hd0,0)
   chainloader (hd0,0)/io.sys

Windows NT/2000/XP/2003:

   title Load ntldr
   root (hd0,0)
   chainloader (hd0,0)/ntldr

Windows Vista:

   title Load bootmgr
   root (hd0,0)
   chainloader (hd0,0)/bootmgr


Disk emulation

In GRUB for DOS, disk emulation is implemented using the "map" command.

Direct mapping

Here is an example of mapping a image file as virtual floppy, and boot from it:

   title Boot from floppy image
   map (hd0,0)/aa.img (fd0)
   map --hook
   chainloader (fd0)+1
   rootnoverify (fd0)

map --hook is used to make the mapping created by first map command take effect immediately.

Here is an example of booting from the virtual hard disk:

   title Boot from hard disk image
   map (hd0,0)/aa.dsk (hd0)
   map (hd0) (hd1)
   map --hook
   chainloader (hd0,0)+1
   rootnoverify (hd0,0)

Map the image file as virtual hard disk, but boot from the original disk:

   title Create virtual hard disk
   map (hd0,0)/aa.dsk (hd1)
   map --hook
   chainloader (hd0,0)+1
   rootnoverify (hd0,0)

CDROM emulation is not implemented.

In direct mapping, the image file must be contiguous.

The virtual disk is implemented using INT 13. Therefore, it can be accessed in system that still uses INT 13, such as all kinds of DOS and Windows 9X (compatible mode disk access), and it can't be accessed in system that usesprotected mode drivers, such as Linux, FreeBSD and Windows NT family OSs.

Indirect mapping

Indirect mapping is very similar to direct mapping, here is an example:

   title Boot from floppy image
   map --mem (hd0,0)/aa.img (fd0)
   map --hook
   chainloader (fd0)+1
   rootnoverify (fd0)

The --mem option indicates indirect mapping.

In indirect mapping, the image file is copy to memory before the mapping is applies, therefore, the image file need not to be contiguous, however, you must have enough memory to hole the image file.

Auto MBR creation

To create virtual hard disk, you need an image file that resemble a real hard disk, which consist of MBR and partition data. If the image file only contains partition data, you need to patch it with MBR to create disk image. GRUB for DOS has taken this into consideration. When mapping disk image file, it will test the presence of MBR, if not found, it will create MBR automatically using the partition data. For example:

   title Boot from hard disk image
   map --mem (hd0,0)/aa.dsk (hd0)
   map (hd0) (hd1)
   map --hook
   chainloader (hd0,0)+1
   rootnoverify (hd0,0)

aa.dsk can be either disk image or partition image, in the later case, GRUB for DOS will create the MBR in the air.

memdisk

The indirect mapping of GRUB for DOS is similar to the function of external tool memdisk from syslinux. In fact, the following two menu entries do roughly the same thing:

   title Boot from virtual disk using internal map command
   map --mem (hd0,0)/aa.dsk (hd0)
   map (hd0) (hd1)
   map --hook
   chainloader (hd0,0)+1
   rootnoverify (hd0,0)
   title Boot from virtual disk using external memdisk
   kernel (hd0,0)/memdisk
   initrd (hd0,0)/aa.dsk

However, memdisk does not support direct mapping or auto MBR creation.


CDROM related subjects

Using ATAPI CDROM in GRUB for DOS

Use the following command to initialize ATAPI CDROM:

   cdrom --init

Then, use the following command to start using ATATPI CDROM:

   map --hook

After map --hook, the CDROM device can be accessed using (cd0), (cd1), etc.

(Note, if you need to use more than one map --hook, perhaps because you are also mapping disk images to memory, then the second and subsequent hook commands need to be map --rehook)

To boot from the first CDROM, use the following commands:

   chainloader (cd0)
   boot

To stop using CDROM:

   map --unhook
   cdrom --stop

The first command removes the (cdN) device mapping, while the second one stops the CDROM driver.

Note: If you boot GRUB for DOS from CDROM, the booting device will be (cd). This device is always accessible. However, if you want to access file from other CDROMs, you still need to initialize them using the above commands.

Examples:

To boot from the first CDROM:

   title Boot From First CDROM
   cdrom --init
   map --hook
   chainloader (cd0)
   boot

Create a bootable CDROM

In GRUB for DOS, you can use grldr to create bootable CDROM:

   mkisofs -R -b grldr -no-emul-boot -boot-load-seg 0x1000 -o bootable.iso iso_root
   mkisofs -R -b grldr -no-emul-boot -boot-load-size 4 -o grldr.iso iso_root

grldr and menu.lst should be placed at the root directory of CDROM image.

The above two commands can both create a bootable CDROM, but they are not totally the same.

The first one tells BIOS to load the whole grldr. However, some buggy BIOS might ignore it and load only a portion of the file, typically one sector (2048 bytes). This will cause the program to fail.

The second one tells BIOS to load only the first sector (2048 bytes), and the program loads the rest from CDROM. This method is safer, it should work for most BIOS.

Note: you can optionally use the -boot-info-table option, but the info table will be ignored by the program.

Load GRUB for DOS from BCDW

To load GRUB for DOS from BCDW, first copy grldr and menu.lst to the root directory of CDROM image, then add a new line to the [MenuItems] section of BCDW configuration file bcdw.ini:

   \grldr   ; Grub4Dos

Trackback 1 Comment 0
2008. 10. 27. 09:27

리눅스(Linux) 시스템 및 데이타 백업(Data Backup)

시스템 백업의 중요성 : 외부의 침입자로부터 보호, 예기치 못한 사고로부터의 복원, 시스템 백업은 매일 해야 한다.

 

1. 백업(backup) 종류

1) 완전 백업(Full backup)

2) 증분 백업(Incremental Baxkup) - 부분 백업

3) 차등 백업(Differential Backup) - 전체 백업후의 모든 것을 백업하는것

 

2. 백업 정책과 백업 시간

백업 매체: 하드 디스크, CD-RW, DVD-RW

백업 시간: 이용자가 적은 새벽 시간대(cron이나 at데몬을 이용)에 한다.

 

3. 백업 매체 선택

비용보다는 매체의 신뢰성을 더 따져야 할 것이다. 테이프는 장비가 비싸고 저장 매체는 저가이나 일반인이 사용하기엔 너무 비용부담이 크다.

 

4. tar를 이용한 로컬 데이터 백업

1) tar의 증분 백업(--listed-invremental (-g)옵션)

# mkdir /backup

# mkdir /backup/home

# mkdir /backup/home/fedora

# cd /home/fedora

# touch test1 test2 test3

# tar cpfz /backup/Full-backup.tar.gz --listed-incremental /backup/backuplist /home/fedora

# touch /home/fedora/test4

# tar cpfz /backup/Incremental1.tar.gz --listed-incremental /backup/backuplist /home/fedora

# touch /home/fedora/test5

# tar cpfz /backup/Incremental2.tar.gz --listed-incremental /backup/backuplist /home/fedora

# rm -f /home/fedora/test5

# tar cpfz /backup/Incremental3.tar.gz --listed-incremental /bckup/backuplist /home/fedora

# ls -l /backup

2) 증분 백업 복원

# cd /backup

# tar xvzf Full-backup.tar.gz

# ls /backup/home/fedora

# tar xvzf Incremental1.tar.gz -g ./backuplist

# ls home/fedora

# tar svzf Incremental2.tar.gz -g ./backuplist

# ls home/fedora

# tar xvzf Incremental3.tar.gz -g ./backuplist

# ls home/fedora

# ls /home/fedora

3) tar를 이용한 특정 디렉토리 데이터 자동 백업

자동화 작업은 백업할 때 많은 도움을 주는데, 아래에서는 자동으로 백업하기 위해서 backup.cron이라는 스크립트를 예로들어 설명하고 있다. 이 백업 스크립트는 몇 가지 변수(COMPUTER, DIRECTORIES, BACKUPDIR 그리고 TIMEDIR)만 변경해 주면 어떠한 환경에서도 사용할 수 있다. 이 스크립트를 이용해 첫 달 초에 실행하고 주된 변경이 있기 전에 한 달 동안 실행한다. 이 예제에서는 로컬 서버의(BACKUPDIR) 디렉토리로 백업을 하는데 물론 이 스크립트를 수정하여 로컬 서버에 있는 테이프나 nfs를 통한 백업도 할 수 있다.

1단계

'touch /etc/cron.daily/backup.cron'로 /etc/cron.daily/ 디렉토리에 backup.cron 파일을 생성하고 아래의 내용을 추가한다.

#!/bin/bash

#

#각자의 환경에 맞도록 아래 5개의 변수를 수정한다.

COMPUTER=deep #이 컴퓨터의 이름

DIRECTORIES="/home #백업할 디렉토리

BACKUPDIR=/backups #백업을 저장할 위치

TIMEDIR=/backups/last-full #풀 백업한 시각을 저장할 파일

TAR=/bin/tar #tar 명령의 위치

#아래는 전혀 변경할 필요가 없다.

PATH=/usr/local/bin:/usr/bin:/bin

DOW=`date +%a` #일주일 중의 요일. 예를 들면 Mon

DOM=`date + %d` #한 달(31일) 중의 날짜. 예를 들면 27

DM=`date +%d%b` #날짜와 달. 예를 들면 27Sep

#한 달의 첫날(1일)에 영원한 풀 백업이 진행된다.

#매 일요일에는 지난 일요일의 백업을 덮어쓰는 풀 백업이 진행된다.

#나머지 시간에는 증가분 백업이 진행되는데,

#각각의 증가분 백업은 같은 이름으로 일주일 전의 증가분 백업을 덮어쓴다.

#

#만약 NEWER = ""일 경우 tar는 디렉토리에 있는 모든 파일을 백업하고

#NEWER의 날짜는 매주 일요일에 쓰여지는 파일에서 읽어온다.

#

#매달 풀 백업

if( $DOM = "01" ]; then

NEWER=""

$TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DM.tar $DIRECTORIES

fi

#매주별 풀 백업

if [ $DOW = "Sun" ]; then

NEWER="

NOW=`date +%d-%b`

#풀 백업 날짜를 갱신한다.

echo $NOW > $TIMEDIR/$COMPUTER-full-date

$TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DOW.tar $DIRECTORIES

#증가분 백업을 한다. 지난 주의 데이터를 덮어쓴다.

else

#지난 풀백업의 날짜를 가져온다.

NEWER="--newer `cat $TIMEDIR/$COMPUTER-full-date`"

$TAR$NEWER -cf $BACKUPDIR/$COMPUTER-$DOW.tar $DIRECTORIES

fi

주의) 백업하기 전에 백업을 저장할 디렉토리인(BACKUPDIR)의 풀 백업한 시간을 저장한 파일(TIMEDIR)은 이 백업 스크립트를 실행하기 전에 미리 생성해야 한다. 그렇지 않다면 오류 메시지가 나타날 것이다.

2단계

매 달의 처음(01-month-year)에 이 백업 스크립트를 실행하지 않는다면 증가분 백업을 제대로 실행하기 위해 일요일에 백업되었음을 나타내는 파일이 필요하다. 한 주의 중반 정도에 백업을 시작한다면 TIMEDIR에 시간을 나타내는 파일을 생성할 필요가 있다.

- TIMEDIR 디렉토리에 시간을 나타내는 파일을 생성하려면 아래와 같은 명령을 입력한다.

#date +%d%b > /backups/last-full/myserver-full-date

'/backups/last-full'은 TIMEDIR 변수로서 풀 백업을 한 시간을 저장하는 것이고 'myserver-full-date'은 서버의 이름이다(이를테면 deep등). 그리고 시간을 나타내는 파일은 15-Feb와 같이 한 줄로 되어 있다.

3단계

이 스크립트를 실행이 가능하고 관리자인 root만 읽고 실행할 수 있도록 실행권한을 변경한다.

#chmod 700 /etc/cron.daily/backup.cron

주의) 이 스크립트 파일은 /etc/cron.daily 디렉토리에 있으므로 cron에 의해 매일 오전 1시에 자동으로 실행된다.

4) tar를 이용한 로컬 데이터 미러링하기

형식 : tar cpf - --directory=백업할경로 | (cd /mnt/hdb4; tar xpf -)

# mkdir /data/fedora

# ls -l /home/fedora

# tar cpf - --derectory=/home/fedora | (cd /data/fedora; tar xpf -)

# ls -l /data/fedora

5) tar를 이용한 리눅스 운영체제 백업

운영체제를 백업하기 위해서 /proc, /mnt, /media, tmp 디렉토리는 포함하지 않아도 된다.(--exclude)

# tar cpvfz /backup/Fedora-Core4-bk.tar.gz --exclude=/proc --exclude=/tmp --exclude=/media --exclude=/backup --absolute-name /

 

5. Rsync를 이용한 로컬 데이터 백업 및 서버 동기화

1) 미러링(Mirroring)

리눅스 배포판의 미러링 사이트, 사이트 동기화, 로컬 시스템의 데이터 백업

2) rsync

분산 서버 데이터 동기화, SSH를 이용한 미러링

3) rsync 설치

# rpm -q rsync

# yum list installed rsync 또는 # apt-get install rsync 를 이용하여 설치

4) SSH를 이용한 원격 서버 데이터 미러링

형식 : rsync -avzr --delete -e ssh 원격서버:데이터경로 백업경로

# mkdir /data4/Fedora-Nirror

# rsync -avzr --delete -e ssh 192.168.0.1:/data/fedora /data4/Fedora-Mirror/

>> ssh를 이용한 rsync데이터 동기화를 위해서는 서버에 ssh서버가 작동 하고 있어야 한다.

5) rsync 서버 설정(/etc/rsyncd.conf)

>> 사용자가 직접 /etc/rsyncd.conf파일을 만듬.

# cat > /etc/rsyncd.conf

[Fdora-Core6]

comment=Fdora Core6 Linux

path=/var/ftp/pub/Mirror/Fedora

uid=nobody

gid=nobody

use chroot=yes

read only=yes

host allow=192.168.0.4

max connections=5

timeout=60

6) /etc/xinetd.d/rsync 설정

rsync 서비스는 수퍼 데몬 xinetd에 의해서 동작한다.

/etc/xinetd.d/rsync 파일을 만들어 xinetd 데몬에 의해 읽어 지도록 설정.

# default: off

# description: The rsync server is a good addirion to an ftp server, as it \

# allows crc checksumming etc.

service rsync

{

disable = no

sicket_type = stream

wait = no

user = root

server = /usr/bin/rsync

server_args = --deamon

log_on_failure += USERID

}

~

-- insert --

# /etc/init.d/xinetd restart

>> rsync 데몬은 독립 모드(standalone)으로 동작하질 않기 때문에 ps ax 명령으로느 이 데몬이 동작하고 있는지를 확일할 수 없다.

(tcp873번 포트로 텔넷 접속을 시도하여 연결 확인 /etc/sysconfig/iptables에서 수정)

# telnet localhost 873

7) rsync 사용법

형식: rsync [옵션] rsync서버주소::서비스명 미러경로

>> rsync 서비스 모듈(서비스명과 설명) 알아보기

형식: rsync 서버주소::

# rsync 192.168.0.1::

>> 로컬 시스템 데이터 백업

형식: rsync -avzr --delete 백업소스경로 백업될경로

# mkdir /rsync-src /rsync-mirror

# cd /rsync-src

# touch test1 test2 test3 test4 test5

# rsync -avzr /rsync-src/ /ysync-mirror/

# ls -l /rsync-mirror/

# rm -f test3 test4

# rsync -avzr --delete /rsyc-src/ /rsync-mirror/

# ls -l /rsync-mirror/

>> 원격 서버의 데이터 미러링

형식: rsync-avz 서버주소::모듈명(서비스명) 백업될경로

 

6. CD-RW/DVD-RW를 이용한 하드 디스크 백업

1) CD/DVD 레코딩 도구 설치

# yum list installed mkisofs 또는 # yum install mkisofs

# yum install cdrecord

# yum install dvd+tw-tools

# yum install k3b

# yum install xcdroast

2) 로컬 데이터 백업 ISO 파일 만들기

mkisofs 도구로 ISO이미지 파일 만들기

형식: mkiso -r -J -input-charset UTF-8 -o /디렉토리/이미지파일명.iso /백업데이터경로

# mkisofs -r -J -input-charset UTF-8 -o /tmp/homebackup.iso /home/

3) ISO 이미지 파일 레코딩 하기

>> cdrecord로 iso이미지 파일 CD굽기

형식: cdrecord -v speed=배속 -dao driveropts=burnfree -eject dev-디바이스명 -data 이미지명

# cdrecord -v speed=40 -dao driveropts=burnfree -eject dev=/dev/hdc -data /tmp/homebackup.iso

>> growisofs로 iso이미지 DVD로 굽기

형식: growisofs -Z DVD-R/RW디바이스명 iso파일명 -use-the-force-luke=notray \

-use-the-force-luke=tty -speed=배속

# growisofs -Z /dev.hdc /tmp/homebackup.iso -use-the-force-luke=notray \

-use-the=force-luke=tty -speed=4

>> CD-RW 미디어 포맷

cdrecord -v speed=배속 dev=디바이스명 blank=all or blank=fast

>>DVD-R/+R/RW 미디어 포맷

형식: dvd+rw-format -force 디바이스명

4) 그래픽 레코딩 프로그램으로 레코딩하기

엑스윈도우용 CD레코더 : K3B, X-CD-Roast, 노틸러스, Burn-it, KOnCD, gcombust

# yum install k3b

 

7. 시스템 응급 복구

1) 시스템 장애 일으키기

/etc/fstab 파일의 내용중 한곳을 임으로 틀리게 수정한다.

2) 시스템 응급 복구

설치 cd를 입력하고 GRUB 상태에서 boot: linux rescue 입력후 진행

3) 수동 응급 복구

rescue창에서 skip버튼을 눌러 실행.

>> mount -o remount,rw / 를 이용해 수정하는 방법도 있다.


Trackback 1 Comment 0