기술 가이드

소프트웨어 RAID1 + LVM: GRUB 설치 및 /dev/sda 준비 가이드

5 min read 시스템관리 업데이트됨 28 Sep 2025
RAID1 + LVM: GRUB 설치 및 /dev/sda 구성 가이드
RAID1 + LVM: GRUB 설치 및 /dev/sda 구성 가이드

이 문서는 실행 중인 LVM 위에 소프트웨어 RAID1을 구성한 후, 두 번째 디스크에 GRUB 부트로더를 설치하고 /dev/sda를 RAID 배열에 추가하는 단계별 절차를 설명합니다. 주요 명령과 예상 출력, 점검 항목, 문제해결 체크리스트 및 복구 절차를 포함합니다.

개요

이 가이드는 이미 LVM이 작동 중인 시스템에서 소프트웨어 RAID1(mdadm)로 /boot와 루트 영역을 보호하고자 할 때, 부트로더(GRUB)를 디스크들에 설치하고 최종적으로 /dev/sda를 RAID에 추가하는 전체 흐름을 다룹니다. 모든 명령은 루트 권한으로 실행해야 합니다. 본 문서에서는 GRUB(legacy) 환경을 기준으로 예시를 보여줍니다.

중요: 본 가이드를 수행하기 전에 전체 중요 데이터의 백업을 반드시 확보하세요. 파티션 테이블 변경과 부트로더 설치는 부팅 불가 상태를 초래할 수 있습니다.

주요 단계 요약

  1. 두 번째 하드디스크(/dev/sdb)에 GRUB 설치
  2. GRUB 셸에서 root와 setup 명령으로 부트로더 초기화
  3. 시스템 재부팅 후 md 디바이스(/dev/md0 등) 확인
  4. /dev/sda 파티션 타입을 Linux raid autodetect(fd)로 변경
  5. /dev/sda1을 /dev/md0에 추가하고 동기화 상태 확인
  6. /etc/mdadm.conf 갱신 및 재부팅

1. GRUB 준비 및 설치 (두 번째 하드디스크 /dev/sdb)

아래와 같이 먼저 두 번째 하드디스크에 GRUB 부트로더를 설치합니다.

grub

GRUB 셸이 열리면 다음 명령을 입력합니다:

root (hd0,0)

셸에서의 예시 출력:

grub> root (hd0,0)
root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
grub>

그다음 설치 명령을 실행합니다 (여기서 (hd0)는 GRUB이 참조하는 첫 번째 디스크를 의미합니다):

setup (hd0)

예시 출력:

grub> setup (hd0)
setup (hd0)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... yes
Checking if "/grub/stage2" exists... yes
Checking if "/grub/e2fs_stage1_5" exists... yes
Running "embed /grub/e2fs_stage1_5 (hd0)"...  15 sectors are embedded.
succeeded
Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.
grub>

같은 절차를 다른 디스크(hd1)에 대해서도 반복합니다:

root (hd1,0)
grub> root (hd1,0)
root (hd1,0)
Filesystem type is ext2fs, partition type 0xfd
grub>
setup (hd1)
grub> setup (hd1)
setup (hd1)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... yes
Checking if "/grub/stage2" exists... yes
Checking if "/grub/e2fs_stage1_5" exists... yes
Running "embed /grub/e2fs_stage1_5 (hd1)"...  15 sectors are embedded.
succeeded
Running "install /grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.
grub>

마지막으로 GRUB에서 빠져나옵니다:

quit

그 후 일반 셸로 돌아와 시스템을 재부팅합니다:

reboot

중요: 부트로더를 여러 디스크에 설치하면 한 디스크가 실패해도 다른 디스크에서 부팅이 가능하도록 가용성을 높입니다.

2. 재부팅 후 /dev/md0 확인 및 LVM 상태 점검

시스템이 정상적으로 재부팅되면, /dev/md0가 생겼는지 확인합니다:

df -h

예시 출력:

[root@server1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
8.6G  1.4G  6.8G  18% /
/dev/md0               99M   16M   79M  17% /boot
tmpfs                 250M     0  250M   0% /dev/shm
[root@server1 ~]#

md 디바이스 상태는 다음으로 확인합니다:

cat /proc/mdstat

예시 출력:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[1]
104320 blocks [2/1] [_U]

md1 : active raid1 sdb2[1] sda2[0]
10377920 blocks [2/2] [UU]

unused devices: 
[root@server1 ~]#

LVM 관련 PV/VG/LV 상태를 다음 명령으로 확인합니다:

pvdisplay
vgdisplay
lvdisplay

예시 출력(요약):

[root@server1 ~]# pvdisplay
--- Physical volume ---
PV Name               /dev/md1
VG Name               VolGroup00
PV Size               9.90 GB / not usable 22.69 MB
Allocatable           yes (but full)
...
[root@server1 ~]#
[root@server1 ~]# vgdisplay
--- Volume group ---
VG Name               VolGroup00
Format                lvm2
VG Size               9.88 GB
PE Size               32.00 MB
Total PE              316
Alloc PE / Size       316 / 9.88 GB
Free  PE / Size       0 / 0
...
[root@server1 ~]#
[root@server1 ~]# lvdisplay
--- Logical volume ---
LV Name                /dev/VolGroup00/LogVol00
LV Size                8.88 GB
...
--- Logical volume ---
LV Name                /dev/VolGroup00/LogVol01
LV Size                1.00 GB
[root@server1 ~]#

이 출력들은 /dev/md1이 LVM의 물리 볼륨(PV)로 사용되고 있음을 보여줍니다.

3. /dev/sda 파티션 타입 변경 및 RAID에 추가

이제 /dev/sda1의 파티션 타입을 Linux raid autodetect(fd)로 변경합니다:

fdisk /dev/sda

fdisk 예시 상호작용:

[root@server1 ~]# fdisk /dev/sda

The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): <-- t
Partition number (1-4): <-- 1
Hex code (type L to list codes): <-- fd
Changed system type of partition 1 to fd (Linux raid autodetect)

Command (m for help): <-- w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
[root@server1 ~]#

위 경고는 커널이 아직 이전 파티션 테이블을 사용 중이기 때문에 발생합니다. 다음 재부팅 시점에 새 파티션 테이블이 반영됩니다.

이제 /dev/sda1을 /dev/md0에 추가합니다:

mdadm --add /dev/md0 /dev/sda1

추가 후 재확인:

cat /proc/mdstat

정상적일 경우:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda1[0] sdb1[1]
104320 blocks [2/2] [UU]

md1 : active raid1 sdb2[1] sda2[0]
10377920 blocks [2/2] [UU]

unused devices: 
[root@server1 ~]#

4. /etc/mdadm.conf 갱신 및 최종 재부팅

현재 RAID 배열 정보를 mdadm으로 스캔해 /etc/mdadm.conf를 갱신합니다:

mdadm --examine --scan > /etc/mdadm.conf

예시 /etc/mdadm.conf 내용:

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=0a96be0f:bf0f4631:a910285b:0f337164
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=f9e691e2:8d25d314:40f42444:7dbe1da1

파일을 갱신한 뒤 시스템을 재부팅합니다:

reboot

정상적으로 부팅되면 작업이 완료된 것입니다. 이제 GRUB이 각 디스크에 설치되어 있고, /dev/sda가 RAID1의 일원이 되어 디스크 장애에 대비할 수 있습니다.

중요 참고 및 주의사항

중요: 실제 환경에서는 아래 사항을 반드시 점검하세요.

  • BIOS/UEFI 설정: 전통적 BIOS와 UEFI 환경에서 부팅 방식이 다릅니다. 이 가이드는 BIOS 기반의 GRUB(legacy) 설치 예시를 보입니다. UEFI 환경에서는 grub-install 및 efibootmgr 기반 절차가 필요합니다.
  • 백업: 파티션 변경 및 부트로더 설정 전 전체 백업 필수.
  • 부트로더 버전: 일부 배포판은 GRUB2를 사용합니다. GRUB legacy와 GRUB2 명령어는 다르므로 환경에 맞게 적용하세요.

점검 및 문제해결 체크리스트

  1. /proc/mdstat 출력 확인
    • 모든 RAID 디바이스가 [UU]인지 확인합니다. ‘[U_]’ 또는 ‘[_U]’는 디스크가 비동기이거나 누락된 상태를 의미합니다.
  2. /etc/mdadm.conf의 UUID 일치 여부 확인
    • mdadm –examine –scan 결과와 비교하여 올바른 장치가 등록되었는지 확인합니다.
  3. GRUB가 설치된 디스크 확인
    • grub> 명령 실행 시 embed 및 install 성공 메시지를 확인합니다.
  4. 파티션 테이블 재읽기 경고 대응
    • fdisk 변경 후 경고가 발생하면 시스템을 재부팅하여 커널이 새 파티션 테이블을 읽도록 합니다.
  5. 부팅 불가 시 복구
    • 라이브CD/USB로 부팅하여 /boot를 마운트한 뒤 GRUB 재설치 또는 chroot 환경에서 복구 수행.

복구(롤백) 및 비상 대응 절차

  1. 증상: 부팅 실패
    • 조치: 라이브 미디어로 부팅, 루트와 /boot가 포함된 LVM 및 RAID를 마운트, chroot로 진입 후 grub 설치 재시도.
  2. 증상: RAID 재동기화 실패
    • 조치: mdadm –detail /dev/md0로 상태 확인, 필요 시 mdadm –assemble –force 사용(주의 필요).
  3. 증상: 파티션 테이블 충돌
    • 조치: fdisk로 파티션 테이블 확인, 정확한 파티션 정보를 알고 있다면 sfdisk로 복원.

항상 복구 전에 현재 상태의 스냅샷(명령 출력, /proc/mdstat, mdadm –detail, fdisk -l 등)을 기록해 두세요.

역할별 간단 체크리스트

시스템 관리자:

  • 백업 확인
  • /etc/mdadm.conf 및 /boot/grub/grub.conf 백업
  • GRUB 설치 후 재부팅 및 정상 부팅 확인

운영 담당자(SRE):

  • 모니터링 경고 설정 (RAID 상태, 재동기화 시간)
  • 디스크 교체 절차 테스트
  • 재해 복구(runbook) 검증

보안 담당자:

  • /boot 파티션 무결성 검증
  • 부트로더 설정의 무결성 검토

수용 기준

  • 시스템이 재부팅되었을 때 정상적으로 부팅되어야 한다.
  • /proc/mdstat에서 모든 RAID 장치가 [UU] 상태여야 한다.
  • /boot가 RAID 디바이스(/dev/md0)에 올바르게 마운트되어야 한다.
  • /etc/mdadm.conf가 현재 구성과 일치해야 한다.

자주 발생하는 문제와 원인(간단한 원인-해결 매핑)

  • 문제: fdisk 후 “Device or resource busy” 경고

    • 원인: 커널이 아직 새 파티션 테이블을 사용하지 않음
    • 해결: 안전한 시점에 재부팅
  • 문제: GRUB 설치 시 “Checking if \”/boot/grub/stage1\” exists… no”

    • 원인: 배포판에서 GRUB 레거시 대신 다른 레이아웃을 사용하므로 경고 수준의 메시지일 수 있음
    • 해결: 설치 로그 확인, 필요 시 GRUB2 방식으로 설치
  • 문제: RAID 동기화가 아주 느림

    • 원인: 디스크 성능/읽기 부하/동시 작업
    • 해결: /proc/mdstat에서 재동기화 진행률 확인, 시스템 부하 완화

간단한 점검 목록(명령 모음)

  • RAID 상태: cat /proc/mdstat
  • md 상세: mdadm –detail /dev/md0
  • mdadm 설정 생성: mdadm –examine –scan > /etc/mdadm.conf
  • 파티션 정보: fdisk -l /dev/sda
  • LVM 상태: pvdisplay; vgdisplay; lvdisplay

요약

이 가이드에서는 소프트웨어 RAID1을 실행 중인 LVM 시스템에 적용하면서 GRUB을 각 디스크에 설치하고 /dev/sda를 RAID에 추가하는 전체 절차를 다뤘습니다. 핵심은 부트로더를 모든 부트 가능한 디스크에 설치하고, mdadm으로 RAID 구성과 /etc/mdadm.conf를 일치시키며, 파티션 타입을 적절히 설정하는 것입니다. 항상 백업을 확보하고, 재부팅 후 /proc/mdstat와 LVM 상태를 확인하세요.

요약된 핵심 포인트:

  • GRUB을 모든 관련 디스크에 설치하여 가용성 확보
  • fdisk로 파티션 타입을 fd(Linux raid autodetect)로 변경
  • mdadm –add로 디스크를 RAID에 추가하고 /proc/mdstat로 상태 확인
  • mdadm 설정을 갱신(/etc/mdadm.conf)하고 재부팅하여 최종 검증

추가 자료나 특정 배포판(예: Ubuntu의 GRUB2, CentOS의 grub legacy 차이)에 따른 변형 절차가 필요하면 환경 정보를 알려주시면 맞춤형 지원을 제공하겠습니다.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

셀피로 PIN 추출하는 각막 키로거와 대응법
보안

셀피로 PIN 추출하는 각막 키로거와 대응법

Windows 10 터치패드가 작동하지 않을 때 해결 가이드
윈도우 문제

Windows 10 터치패드가 작동하지 않을 때 해결 가이드

BoltWire CMS 설치 가이드 — Ubuntu 18.04
CMS 설치

BoltWire CMS 설치 가이드 — Ubuntu 18.04

RAID1 + LVM: GRUB 설치 및 /dev/sda 구성 가이드
시스템관리

RAID1 + LVM: GRUB 설치 및 /dev/sda 구성 가이드

High Sierra 알림 완전 차단 가이드
macOS

High Sierra 알림 완전 차단 가이드

노크아웃 포스터 만들기: 6단계 실전 가이드
디자인

노크아웃 포스터 만들기: 6단계 실전 가이드