기술 가이드

Fedora 8에서 RAID1으로 /dev/sda 준비하기 및 GRUB 업데이트

3 min read 시스템 관리 업데이트됨 01 Oct 2025
Fedora 8에서 RAID1: /dev/sda 준비 및 GRUB 업데이트
Fedora 8에서 RAID1: /dev/sda 준비 및 GRUB 업데이트

준비 확인

먼저 현재 파일시스템과 소프트웨어 RAID 상태를 확인합니다. 다음 명령은 루트와 부트 파티션의 마운트를 보여줍니다:

df -h

출력 예시(변경하지 마십시오):

[root@server1 ~]# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/dev/md2              4.4G  2.4G  1.8G  58% /  
/dev/md0               99M   15M   80M  16% /boot  
tmpfs                 185M     0  185M   0% /dev/shm  
[root@server1 ~]#

그리고 소프트웨어 RAID 상태는 다음으로 확인합니다:

cat /proc/mdstat

출력 예시:

[root@server1 ~]# cat /proc/mdstat  
Personalities : [raid1] [raid6] [raid5] [raid4]  
md0 : active raid1 sdb1[1]  
      104320 blocks [2/1] [_U]  
  
md1 : active raid1 sdb2[1]  
      513984 blocks [2/1] [_U]  
  
md2 : active raid1 sdb3[1]  
      4618560 blocks [2/1] [_U]  
  
unused devices:   
[root@server1 ~]#

위 상태에서 /dev/sda의 파티션 타입을 변경하고, /dev/sdaN 파티션을 각 md 장치에 추가하는 것이 목표입니다.

1) /dev/sda 파티션 타입을 Linux raid autodetect로 변경

fdisk로 /dev/sda를 열어 각 파티션의 타입을 fd(Linux raid autodetect)로 바꿉니다. 순서대로 1, 2, 3 파티션을 변경하세요.

fdisk /dev/sda

예시 상호작용(입력은 <– 뒤에 표시된 값):

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

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): <-- t  
Partition number (1-4): <-- 2  
Hex code (type L to list codes): <-- fd  
Changed system type of partition 2 to fd (Linux raid autodetect)

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

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

시스템이 파티션 테이블을 다시 읽도록 ioctl 호출과 디스크 동기화 메시지가 나타납니다.

Calling ioctl() to re-read partition table.  
Syncing disks.  
[root@server1 ~]#

중요: 운영 중인 시스템에서 파티션 테이블을 변경하면, 드라이브가 사용 중일 경우 위험이 있으므로 변경 전에 백업과 유효성 검사를 권장합니다.

2) /dev/sdaN을 RAID에 추가

각 파티션을 해당 md 레이드에 추가합니다:

mdadm --add /dev/md0 /dev/sda1  
mdadm --add /dev/md1 /dev/sda2  
mdadm --add /dev/md2 /dev/sda3

추가 후 /proc/mdstat를 확인하면 동기화(recovery)가 시작된 것을 볼 수 있습니다:

[root@server1 ~]# cat /proc/mdstat  
Personalities : [raid1] [raid6] [raid5] [raid4]  
md0 : active raid1 sda1[0] sdb1[1]  
      104320 blocks [2/2] [UU]  
  
md1 : active raid1 sda2[0] sdb2[1]  
      513984 blocks [2/2] [UU]  
  
md2 : active raid1 sda3[2] sdb3[1]  
      4618560 blocks [2/1] [_U]  
      [=====>...............]  recovery = 29.9% (1384256/4618560) finish=2.3min speed=22626K/sec  
  
unused devices:   
[root@server1 ~]#

실시간 모니터링을 원하면 다음을 사용하세요:

watch cat /proc/mdstat

watch에서 나오려면 Ctrl+C를 누릅니다.

3) 동기화 완료 확인

동기화가 끝나면 /proc/mdstat 출력이 모두 [UU] 상태로 바뀝니다:

[root@server1 ~]# cat /proc/mdstat  
Personalities : [raid1] [raid6] [raid5] [raid4]  
md0 : active raid1 sda1[0] sdb1[1]  
      104320 blocks [2/2] [UU]  
  
md1 : active raid1 sda2[0] sdb2[1]  
      513984 blocks [2/2] [UU]  
  
md2 : active raid1 sda3[0] sdb3[1]  
      4618560 blocks [2/2] [UU]  
  
unused devices:   
[root@server1 ~]#

4) /etc/mdadm.conf 업데이트

RAID 메타데이터를 기반으로 mdadm 설정을 다시 생성합니다:

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

생성된 /etc/mdadm.conf는 배열 정의(ARRAY …)를 포함하게 됩니다. 예시:

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=2848a3f5:cd1c26b6:e762ed83:696752f9
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=8a004bac:92261691:227767de:4adf6592
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=939f1c71:be9c10fd:d9e5f8c6:a46bcd49

중요: 부팅 시 mdadm가 올바른 장치를 조립하려면 이 파일이 부팅 환경에 반영되어야 합니다.

5) GRUB 설정 준비 및 수정

부팅 로더가 기존에 /dev/sdb(hd1)에서만 부팅하도록 설정되어 있으면 /dev/sdb 장애 시 부팅 불가 상태가 됩니다. /boot/grub/menu.lst(또는 /boot/grub/grub.conf)를 열어 첫 커널 스탠자를 복사해 hd1을 hd0으로 바꿔 추가합니다. 나머지 커널 스탠자는 주석 처리해 기본과 fallback 엔트리를 확보하세요.

예시 파일 편집:

vi /boot/grub/menu.lst

(파일 내용 예시 — 그대로 유지)

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda3
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
fallback=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.23.1-42.fc8)
        root (hd1,0)
        kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/md2 rhgb quiet
        initrd /initrd-2.6.23.1-42.fc8.img

title Fedora (2.6.23.1-42.fc8)
        root (hd0,0)
        kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/md2 rhgb quiet
        initrd /initrd-2.6.23.1-42.fc8.img

#title Fedora (2.6.23.1-42.fc8)
#       root (hd0,0)
#       kernel /vmlinuz-2.6.23.1-42.fc8 ro root=LABEL=/ rhgb quiet
#       initrd /initrd-2.6.23.1-42.fc8.img

이렇게 하면 첫 번째 항목이 hd1(원래 부트 디스크)에서 부팅하고, 두 번째 항목은 hd0(새 디스크)에서 부팅하도록 설정됩니다. 둘 다 동일한 커널과 initrd를 가리켜야 합니다.

6) initrd(램디스크) 업데이트 및 재부팅

현재 커널의 initrd를 백업하고 재생성한 뒤 시스템을 재부팅합니다:

mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img_orig2  
mkinitrd /boot/initrd-`uname -r`.img `uname -r`

재부팅:

reboot

정상적으로 부팅되면 작업이 완료된 것입니다.

점검 체크리스트

  • /proc/mdstat에서 모든 md 장치가 [UU] 상태인지 확인
  • /etc/mdadm.conf가 새 ARRAY 라인을 포함하는지 확인
  • /boot/grub/menu.lst 또는 grub.conf에 hd0, hd1 모두에 대한 부팅 엔트리가 있는지 확인
  • mkinitrd로 재생성한 initrd가 /boot에 존재하는지 확인
  • 재부팅 후 콘솔에서 부팅 장치가 올바르게 선택되는지 확인

대안 및 실패 시 대처

  • 만약 파티션 표 변경 중 문제가 발생하면 즉시 변경 전 백업을 복원하세요. 라이브 USB를 사용해 시스템을 오프라인 상태에서 복구할 수 있습니다.
  • GRUB이 부팅하지 않으면 복구 콘솔에서 GRUB 설치(예: grub-install)를 다시 실행하거나 BIOS 부팅 순서를 확인하세요.
  • RAID 동기화가 느리거나 중지되면 syslog(/var/log/messages)와 dmesg를 확인해 디스크 오류 여부를 점검하세요.

간단 용어

  • mdadm: 리눅스 소프트웨어 RAID를 관리하는 도구(어셈블, 추가, 모니터링 등에 사용).
  • initrd: 커널이 초기 부팅 시 사용하는 초기 램디스크 이미지.
  • hd0/hd1: GRUB에서의 디스크 인덱스(hd0 = 첫번째 BIOS 디스크).

요약

이 가이드는 실행 중인 Fedora 8 시스템에 대해 /dev/sda의 파티션 타입을 RAID로 변경하고, 해당 파티션들을 md 디바이스에 추가해 동기화를 진행한 뒤 mdadm 설정과 GRUB을 업데이트해서 이중 부팅 가능한 RAID1 구성을 완성하는 절차를 설명합니다.

요약 체크포인트:

  • 파티션 타입을 fd로 변경
  • mdadm –add로 파티션을 RAID에 추가
  • 동기화 완료 후 /etc/mdadm.conf 갱신
  • GRUB에 hd0 엔트리 추가 및 initrd 재생성
  • 재부팅 후 정상 부팅 확인

중요: 생산 환경 변경 전 전체 백업을 권장합니다.

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

유사한 자료

Debian 11에 Podman 설치 및 사용하기
컨테이너

Debian 11에 Podman 설치 및 사용하기

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정
시스템 관리

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드
그래픽 가이드

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드

Debian Etch에 Dansguardian+Squid(NTLM) 구성
네트워크

Debian Etch에 Dansguardian+Squid(NTLM) 구성

안드로이드 SD카드 설치 오류(Error -18) 완전 해결
안드로이드 오류

안드로이드 SD카드 설치 오류(Error -18) 완전 해결

KNetAttach로 원격 네트워크 폴더 연결하기
네트워킹

KNetAttach로 원격 네트워크 폴더 연결하기