FREEDOM. FRIENDS. FEATURES. FIRST.
페도라 한국 사용자 모임

[Tip]btrfs 파일 시스템 이용시 grub 복구 방법

게시판 Tech/Tip [Tip]btrfs 파일 시스템 이용시 grub 복구 방법

  • This topic has 0개 답변, 1명 참여, and was last updated 3 years, 1 month 전에 by 난해주님. This post has been viewed 27 times
  • 만든이
    게시글
  • #12267
    난해주님
    참가자
    • 게시글114
    • 댓글337
    • 총합451
    • ★★
    @workman729

    안녕하세요. 최근에 지인중에 윈도우를 재설치하면서 grube 복구에서 애를 먹고
    급하게 저에게 전화로 방법을 문의 한 적이 있습니다.

    저는 조금 귀찮아서 liveUSB를 이용하여 인터넷 보고 복구하라고 설명을 했는데
    한 참을 애를 먹고는 다시 전화가 왔습니다. "안 된다고" 말이지요.

    직접을 전화를 통해 설명을 하고 복구했지만 나중에 함께 인터넷을 참조하니
    방법은 유사하지만 틀린 부분이 상당히 많더군요!(중구난방)

    특히 btrfs 파일 시스템을 이용한다면 더 애를 먹일 것으로 보여 졌습니다.
    해서 btrfs 파일 시스템을 이용시 chroot를 이용하여 grub를 복구하는 방법에 대한 팁을 적어 봅니다.

    물론 첫번째로 liveCD 또는 USB 스틱이 있어야 할 것입니다.
    이것을 이용하여 일차적으로 부팅하시기 바랍니다.

    부팅 후 터미널을 이용하여 다음과 같이 작업하시기 바랍니다.
    아래는 모두 root 권한입니다.

    1. 먼저 blkid 명령을 이용하여 자신이 설정한 파티션의 정보를 열람합니다.(참고로 저의 디스크 내역입니다.)

    # blkid

    /dev/sda1: LABEL="Backup Disk" UUID="836c0653-21a8-4b5f-9275-369c5a1dc7fd" UUID_SUB="75037dd4-3b8b-485b-9906-867bb015eda7" TYPE="btrfs" PARTUUID="8f2ab676-01"
    /dev/sdb1: LABEL="Fedora-Boot" UUID="0068f8d0-8214-4317-9a48-d5a6cf5c612a" TYPE="ext4" PARTUUID="4412ca78-01"
    /dev/sdb2: LABEL="Fedora-Swap" UUID="f87f5273-dfac-4f99-a063-f11793e1c85e" TYPE="swap" PARTUUID="4412ca78-02"
    /dev/sdb4: UUID="BA98FC8E98FC4A81" TYPE="ntfs" PARTUUID="4412ca78-04"
    /dev/sdb5: LABEL="Fedora" UUID="f3f507ee-65c4-4216-afb4-336e6c1a4f4a" UUID_SUB="b69e106f-b53d-4d4e-8e91-bbb5df1543ed" TYPE="btrfs" PARTUUID="4412ca78-05"
    /dev/sdc1: UUID="7E6006EE6006AD49" TYPE="ntfs" PARTUUID="c8bbc70c-01"
    /dev/sdc2: UUID="a11c8995-35d0-4726-b409-a7704de9ed71" UUID_SUB="55b4f1f4-f0e6-4915-848b-abb9c2daa444" TYPE="btrfs" PARTUUID="c8bbc70c-02"
    /dev/sdd1: LABEL="UUI" UUID="0E14-4534" TYPE="vfat" PARTUUID="5b8a44df-01"

    (참고로 저도 btrfs를 이용하고 라벨링을 해서 이용합니다. 라벨이 없다면 파티션을 철저히 확인하시기 바랍니다.)

    2. chroot를 이용하기 위해 페도라가 설치된 파일 시스템을 특정 디렉토리에 마운트 합니다.

    # mkdir /mnt/linux
    # mount /dev/sdb5 (루트 파일 시스템이 존재하는 파티션, 저희 경우 sdb5)

    3. btrfs 파일 시스템은 서브 볼륨을(root, home) 이용하므로 root 서브 볼륨에 boot 파티션을 마운트 합니다.

    # mount /dev/sdb1 /mnt/linux/root/boot

    4. live와 btrfs 파일 시스템의 바인드 작업을 합니다.

    # mount -o bind /proc /mnt/linux/root/proc
    # mount -o bind /dev /mnt/linux/root/dev
    # mount -o bind /sys /mnt/linux/root/sys

    5. chroot를 즉, 루트 파일 시스템이 존재하는 곳에 활성화 합니다. (fakeroot와 유사합니다.)

    # chroot /mnt/linux/root /bin/bash

    6. 이제 grub를 복구합니다. (페도라는 gurb2)

    # grub2-install /dev/sdb

    만약 부가적인 작업이 필요하다면 추가 작업을 하십시오. (단순 복구 작업이므로 지금은 필요 없음)

    # grub2-mkconfig -o /boot/grub2/grub.cfg

    7. 모든 마운트 사항을 해제 합니다.

    # umount /mnt/linux/root/{dev,proc,sys}
    # umount /mnt/linux/root/boot
    # umount /mnt/linux/

    이후 재 부팅하시면 grub 복구를 확인 하실 수 있습니다. (EFI는 알아서 수정 하십시오.)

    만약 ext4 파일 시스템으로 한개의 파티션만을 이용한다면 6번 작업만 하시면 됩니다.

    참고로 윈도우 쓰지 맙시다. 특히 윈도우 10는 말이지요!
    무슨 usb 스틱 만드는데 5시간 이상 걸리는지 또 뮤얼 모니터로 HDMI를 쓴다면 색상이 호러 무비를 보는 것 같습니다.

    이 사항의 버그가 업데이트후 발생한지 3개월 이상이 되었다는 지인의 말로 보아 매우 고의적이라 느껴 집니다.
    특히 리눅스 이미지를 이용할 경우 usb 스틱의 쓰기 속도가 일반 쓰기와 엄청난 속도 차이를 실제로 보면서
    이 세상의 악덕 기업중 MS가 가장 몰지각한 기업임을 새쌈 느낍니다.

    grub 복구 방법이 페도라 사용자 모임엔 없기에 한번 적어 봅니다.

  • 답변은 로그인 후 가능합니다.