GRUB (Grand Unified Bootloade)
리눅스 계열에서 사용되는 부트로더 (컴퓨터가 시작될때 처음실행되는 프로그램) : 운영체제를 불러오는 역활
최근에는 LILO → GRUB 바뀌었음
특징
멀티부팅 가능 (리눅스, 윈도우즈) |
리눅스에서 하드 디스크 인식
IDE 방식은 hda, hdb, hdc … 파티션은 hda1, hda2 … SATA 방식은 sda, sdb, sdc … 파티션은 sda1, sda2 …. |
grub 에서는 IDE, SATA, SCSI 구분없이
hd0, hd1… |
파티션이 나눠져 있다면
(hd0,0), hd(0,1)… |
GRUB 설정 파일 (/boot/grub/grub.conf)
default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.32-358.23.2.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-358.23.2.el6.x86_64 ro root=UUID=ed8aef62-c169-43da-a466-1a29ab32b5d0 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=ko_KR.eucKR SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet initrd /initramfs-2.6.32-358.23.2.el6.x86_64.img title CentOS (2.6.32-358.18.1.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-358.18.1.el6.x86_64 ro root=UUID=ed8aef62-c169-43da-a466-1a29ab32b5d0 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=ko_KR.eucKR SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet initrd /initramfs-2.6.32-358.18.1.el6.x86_64.img |
default 멀티 부팅인 경우 기본으로 부팅할 OS의 LABEL 번호 (위에서부터 아래로 0부터 시작) 를 선택합니다. timeout 지정된시간(초)를 경과하면 default 항목에 설정된 LABEL 번호의 OS (커널)로 부팅됩니다. 만약다른 OS (커널)로 부팅하려면 timeout에서 지정된시간안에 아무키 누름 splashimage GRUB 메뉴의 배경그림을 설정합니다. title GRUB의 메뉴에 나타나는 OS (커널)의 이름을 설정합니다. (LABEL 번호는 상단에서 0 부터부여) root (hd0,0)와 같이 GRUB에 대한 루트 파티션을 설정하고 이를 마운트 합니다. 부팅할OS(커널)가 설치된 파티션을 설정 kernel 운영체제를 부팅할 때읽어올 커널 파일을 지정 initrd initrd 파일을 지정 |
GRUB 명령어
[root@localhost ~]# grub Probing devices to guess BIOS drives. This may take a long time. GNU GRUB version 0.97 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename.] grub> |
blocklist 파일명
특정파일의 블럭리스트 확인
grub>root (hd0,1) Filesystem type is ext2fs,partition type 0x83 grub>blocklist /etc/fstab (hd0,1)294928+1294930+1 grub>blocklist /etc/passwd (hd0,1)294930[0-6]418288+1418290+1 |
boot
root 명령어로 지정한 장치와 kernel 명령어로 지정한 커널로 부팅을 하는 명령
grub>root (hd0,1) Filesystem type is ext2fs,partition type 0x83 grub>kernel /boot/vmlinuz-2.6.18-8.el5 roroot=LABEL=/ [Linux-bzImage,setup=0x1e00,size=0x1ad034] grub>boot |
cat 파일명
지정한 파일의 내용보는 명령어
grub>root (hd0,1) Filesystem type is ext2fs,partition type 0x83 grub>cat /etc/fstab LABEL=// ext3 defaults 11 LABEL=/boot1 /boot ext3 defaults 12 devpts /dev/pts devpts gid=5,mode=620 0 0 tmpfs /dev/shm tmpfs defaults,noexec,nosuid 0 0 LABEL=/home /home ext3 defaults 1 2 proc /proc proc defaults 0 0 sysfs /sys sysfsdefaults 0 0 LABEL=/tmp/tmp ext3 defaults,noatime,nodev,noexec,nosuid 12 LABEL=/usr /usr ext3 defaults 1 2 LABEL=/usr/local /usr/local ext3 defaults 1 2 LABEL=/var /varext3 defaults 1 2 LABEL=SWAP-sda3 swapswap defaults 00 |
clear
모니터 화면을 정리
configfile 파일명
지정한 파일을 GRUB 설정파일로 로딩해서 테스팅 하는 명령어
grub>root (hd0,0) Filesystem type is ext2fs,partition type 0x83 grub>configfile=/grub/menu.lst GNUGRUB version 0.97(640Klower/ 3072Kuppermemory) +————————————————————————-+ |CentOS (2.6.18-53.1.4.el5) | | | | | | | +————————————————————————-+ Use the ^and v keys to select which entryis highlighted. Press enterto boot the selected OS, ‘e’to edit the commands before booting, ‘a’tomodifythe kernel arguments before booting, or ‘c’ for a command-line |
displaymem
메모리정보 출력
grub> displaymem displaymem EISA Memory BIOS Interface is present Address Map BIOS Interface is present Lower memory: 640K, Upper memory (to first chipset hole): 3072K [Address Range Descriptor entries immediately follow (values are 64-bit)] Usable RAM: Base Address: 0x0 Length: 0x0 bytes Reserved: Base Address: 0xa0000 Length: 0x0 bytes Usable RAM: Base Address: 0x100000 Length: 0x0 bytes |
find 파일명
시스템에 있는 모든 파티션에서 지정한 파일이 있는 장치 출력
grub> find /etc/resolv.conf (hd0,1) grub> find vi Error 15: File not found grub> find /bin/vi (hd0,1) |
geometry 장치명
지정한 장치에 대한 정보 출력 (장치의 실린더, 헤드, 섹터정보, 전체섹터수, 각 파티션별 파일시스템 종류와 타입 등을 출력)
grub> geometry(hd0,0) drive 0x80:C/H/S =38913/255/63, The number ofsectors =625142448, /dev/sda Partition num:0, Filesystem type isext2fs, partition type 0x83 Partition num:1, Filesystem type is ext2fs,partition type 0x83 Partition num:2, Filesystem type unknown, partition type 0x82 Partition num:4, Filesystem type isext2fs,partition type 0x83 Partition num:5, Filesystem type isext2fs,partition type 0x83 Partition num:6, Filesystem type is ext2fs,partition type 0x83 Partition num: 7, Filesystem type isext2fs,partition type 0x83 Partition num:8, Filesystem type is ext2fs, partition type 0x83 |
halt
시스템 종료
reboot
시스템 재부팅
help
도움말 출력
hide 파티션명
지정한 파티션을 숨기는 명령
hide 명령을 이용하여 파티션을 숨겨두게 되면 os에서 장치를 인식할 수 없음
initrd 파일명
지정한 장치와 커널로 부팅할 때사용할 initrd 이미지를 지정해 주는 명령어
root 명령어를 이용하여 장치를 지정하고 kernel 명령어로 부팅할 커널을 지정
kernel 파일명
부팅에 사용할커널이미지를 지정하는 명령어입니다. 여기서 지정한 커널을 이용하여 부팅합니다.
grub>root (hd0,0) Filesystem type isext2fs, partition type 0x83 grub>kernel /vmlinuz-2.6.18-53.1.4.el5 ro root=LABEL=/ [Linux-bzImage, setup=0x1e00, size=0x1b32d4] |
md5cryp
지정한 문자를 MD5 포멧의 암호문자로 생성해주는 명령어입니다.
GRUB의 비밀번호를 설정할 때에 사용합니다
grub>md5crypt Password: **** <- test입력 Encrypted: $1$kMvxI$Yxqolms6tdqHLJSDBkqcj. |
pager [FLAG]
pager 모드를 시작 또는 정지시키는 명령입니다. FLAG를 주지 않으면 실행 상태에 따라 정지되거나 실행
grub>pager Internalpager is nowoff grub>pager Internalpager is nowon grub>pager off Internalpager is nowoff grub>pager on Internalpager is nowon |
quit
GRUB 종료
root 디바이스명
지정한 디바이스를 부팅파티션으로 지정
grub>root (hd0,0) Filesystem type isext2fs, partition type 0x83 |
rootnoverify 디바이스명
root 명령과 비슷하지만 마운트는 하지 않습니다. GRUB에서 지원하지 않는 NTFS등의 파일시스템으로 부팅할 경우 사용합니다.
setup [INST ALL_DEVICE]
지정한 장치에 GRUB을 자동으로 설치하는 명령입니다.
grub>setup (hd0) |
unhide 파티션명
hide 속성을 해제하는 명령어입니다.
uppermem KBYTES
GRUB가 지정한 KBytes만큼상위메모리로 설치되어 있다고 인식하게 하는 명령어입니다.
grub>uppermem 256 |
[polldaddy rating=”7739789″]