LVM 스냅샷에서 복원할 때 BusyBox로 부팅하는 것을 방지하는 방법은 무엇입니까?

LVM 스냅샷에서 복원할 때 BusyBox로 부팅하는 것을 방지하는 방법은 무엇입니까?

Ubuntu 14.04를 기반으로 로컬 마이그레이션 프로세스를 개발 중입니다.단계는 다음과 같습니다.

  1. //sbin/lvcreate -s -n ...LVM( ) 을 사용하여 스냅샷 찍기
  2. 마이그레이션 스크립트 실행
    1. 성공 시
      1. LVM을 사용하여 변경 사항 커밋( /sbin/lvremove -f ...)
    2. 실패 시
      1. 다시 덮다LVM을 사용한 스냅샷( /sbin/lvconvert --merge ...)
      2. 재시작

LVM 스냅샷 복구는 즉시 수행되지 않고 다음 초기화로 예정되어 있으므로 해당 명령에 따라 재부팅 명령을 실행했습니다.

대규모 LVM 스냅샷 차이에서 - (예: 스냅샷 찍기와 복원 사이에 큰 변경을 했습니다) - 때로는 OS 부팅 프로세스가 멈추고 정상적으로 부팅하는 대신 BusyBox 셸로 이동하는 경우가 있었습니다.

LVM 스냅샷에서 복원할 때 BusyBox로 부팅하는 것을 방지하는 방법은 무엇입니까?

콘텐츠 /proc/cmdline:

BOOT_IMAGE=/vmlinuz-3.19.0-80-generic root=/dev/mapper/root_vg-root_lv ro nomodeset i915.modeset=0 noplymouth acpi_osi=Linux cpi_backlight=vendor rootdelay=90 rootwait=180

콘텐츠 /etc/default/grub:

# If you change this file, run 'update-grub' afterwards to update

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset i915.modeset=0 noplymouth acpi_osi=Linux cpi_backlight=vendor rootdelay=90 rootwait=180"
GRUB_CMDLINE_LINUX=""
GRUB_RECORDFAIL_TIMEOUT=5

여기에 이미지 설명을 입력하세요.

Gave up waiting for root device. Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
   - Check root= (did the system wait for the right device?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/mapper/root_vg-root_lv does not exist. Dropping to a shell!

BusyBox v1.21.1 (Ubuntu 1:1.21.0-1ubuntu1) built-in shell (ash)
Enter 'help' for a lost of built-in commands.

(initramfs)

답변1

현재 Linux 커널에는 루트 장치를 사용할 수 있을 때까지 90초 동안 기다리도록 지시되어 있습니다. 그때까지 사용할 수 없으면 포기하고 비지박스에 위임하세요. 다음을 통해 지연 시간을 늘릴 수 있습니다.

  1. 행의 값을 /etc/default/grub더 큰 숫자로 변경하려면 편집하세요. 단위는 초입니다.rootdelayGRUB_CMDLINE_LINUX_DEFAULT
  2. update-grub터미널에서 실행하여 GRUB2를 업데이트하세요.

참고: 위 단계에 따라 시스템을 성공적으로 부팅할 수 있어야 하며 LiveCD에서는 실행되지 않습니다. 지금 시스템을 성공적으로 시작할 수 없는 경우 rootdelayGRUB에서 "e" 키를 눌러 일시적으로 수정할 수 있습니다. 이렇게 하면 편집 모드로 들어가 커널 매개변수를 변경할 수 있으며 ENTER를 눌러 업데이트된 매개변수로 부팅할 수 있습니다.

팁: 마이그레이션 프로세스의 경우 LVM(및 파일 시스템)을 사용하는 대신 BTRFS 사용을 고려할 수 있습니다. 작동 방식은 다음과 같습니다.

  1. @(루트) 하위 볼륨의 스냅샷 찍기
  2. 마이그레이션 스크립트를 실행합니다.
    • 성공 정보:
      1. 아무것도 하지 않으면 변경 사항이 라이브 시스템에 적용된 것입니다.
    • 실패 시:
      1. mv@ 하위 볼륨을 하위 볼륨 ID가 아닌 이름으로 마운트한다고 가정하여 하위 볼륨의 이름을 변경하여 @의 (읽기-쓰기) 스냅샷으로 교체합니다 .
      2. 다시 시작하세요. 지연이 필요하지 않습니다.
      3. 이제 이전 @subvolume을 간단히 삭제할 수 있습니다.

관련 정보