배경
나는 모든 방식의 서비스를 수행하기 위해 소프트웨어를 구성하는 데 많은 시간을 소비한 새 시스템을 갖고 있었는데 드라이브가 잠재적으로 불안정하다는 것을 발견했습니다. 그래서 새 디스크의 내용을 유지하면서 디스크를 교체하기로 결정했습니다.
시스템 디스크에도 올바른 부팅 문제가 있어서 kernel
고칠 수 없는 것 같습니다(모든 지침을 따랐 지만 수동으로 올바른 것을 선택한 경우에만 기본적으로 grub
오른쪽으로 부팅되지 않았습니다 ). kernel
그래서 가장 좋은 방법은 새 디스크에 를 새로 설치하는 것이고 Fedora Server
그러면 부팅 문제가 해결될 것이라고 생각했습니다.
무슨 일이에요
새 디스크는 훨씬 더 크기 때문에 설치 과정에서 조금 다르게 파티션을 나누었습니다. 그런 다음 드라이브를 제거하고 새 시스템 디스크와 기존 시스템 디스크를 근처에 있는 다른 서버에 넣었습니다. 많은 주의를 기울여 fstab
새 시스템 디스크에 파티션이 있다는 것을 알고 를 보관했습니다 UUIDs
.
이동하는 방법에는 여러 가지가 있으며 저는 새 시스템 디스크에 깨끗한 루트 파티션을 원하기로 결정했습니다. 나는 dd
이것을 할 수 있을 것이라고 생각했지만 파티션의 크기가 같은 곳에서 사용하는 데 익숙했고 약간 확신이 없었기 때문에 대신 루트 파티션("/")을 gparted
. 그런 다음 일반 OS 도구를 사용하여 파일을 옮겼습니다. 그런 다음 새로 설치한 항목을 잘라내어 붙여넣고 수정 중이던 서버의 UUID
재고가 거의 없는 서버에 삽입했습니다 .fstab
괜찮았어요.
그런 다음 시스템 부팅을 시도했습니다. 게시된 다음 grub
부트로더에 도달하면 자동으로 올바른 커널을 선택하고 종료됩니다! ... 그렇지 않을 때까지!
"Plymouth Boot Screen 표시" 또는 이와 유사한 기능이 표시되고 일시 중지된 다음 자신을 호출하는 항목에서 많은 시간 초과 경고를 표시했습니다 dracut
. 여기서부터 휴대폰으로 스크린샷을 찍었습니다. 그것은 말한다:
Warning: Could not boot.
Starting Dracut Emergency Shell...
Warning: /dev/disk/by-uuid/<a uuid> does not exist
Generating "/run/initramfs/rdsosreport.txt"
journalctl
버그 보고를 위해 사용 하고 저장하라는 제안이 이어집니다 rdsosreport.txt
.
ACK! 무엇을 해야 할까요? 위에서 언급한 Warning [...] does not exist
내용과 관련하여 높은 수준과 낮은 수준을 검색했습니다 dracut emergency shell
. 나다!
답변1
fstab 업데이트
/etc/fstab
파티션의 적절한 UUID로 파일을 업데이트해야 합니다.
크립트탭 업데이트
이전 파티션이 암호화된 경우 해당 항목을 제거해야 합니다./etc/crypttab
새 파티션이 암호화된 경우 해당 항목을/etc/crypttab
initramfs 재생성
/etc/fstab
및 파일 을 업데이트한 후 /etc/crypttab
dracut을 사용하여 initramfs 이미지를 업데이트해야 합니다.
다음을 실행하여 dracut 비상 쉘에서 dracut 이미지를 업데이트할 수 있습니다.
# dracut --hostonly --regenerate-all --force
참고자료
답변2
메시지:
Warning: /dev/disk/by-uuid/<uuid> does not exist
중요한 단서이다.
루트 파티션은 최신 Fedora 서버 파티션의 UUID
두 위치에 저장되어 있는 것으로 나타났습니다 . 하지만 이 시나리오에는 실제로 세 가지 문제가 있습니다.grub2
/boot
UUID
루트 파티션("/")을 다시 포맷하면 실제로 UUID
.따라서 새로운 것을 UUID
먼저 발견한 다음 올바른 위치에 배치해야 합니다. 찾는 방법은 여러 가지가 있지만 UUIDs
이를 수행하는 명령줄 도구 중 하나는 blkid
다음 예와 같습니다.
# blkid
/dev/sda1: UUID="64bbac09-1a12-4bea-8873-212ffb56f2a8" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="primary" PARTUUID="8a09913a-fdb2-42a0-98e3-6b89e16374d2"
UUIDs
이 도구에서는 각 파티션에 대해 두 개의 파티션이 표시됩니다 . 당신은 이것들 중 첫 번째를 원합니다. 또한 권한이 없는 사용자는 실행할 수 없습니다 blkid
.
루트 파티션이 UUID
필요한 세 곳은 다음과 같습니다.
/etc/fstab
루트 파티션 마운트가 설명된 줄에서, 그리고 ;/boot/grub2.cfg
커널 옵션을 설정하는 중 입니다 . 그것을 찾는 가장 빠른 방법은UUID
아직 가지고 있다면 전자를 찾는 것입니다 . 또는"set kernelopts="root=UUID="
, 및를 찾으십시오 ./boot/grub2/grubenv
파일에 인용된 줄과 비슷한 줄에 있습니다/boot/grub2.cfg
. 찾다:kernelopts=root=UUID=
새로운 UUID 하나만 변경하고 다른 모든 항목은 그대로 두는 것을 잊지 마세요. 만약을 대비해 편집하기 전에 파일을 백업해두세요!