"알리다! UUID=xxx가 존재하지 않습니다. 껍질에 떨어지다!” 이 xxx 값을 어디서/어떻게 변경할 수 있나요? grub 구성에 어디에 저장되어 있나요?

"알리다! UUID=xxx가 존재하지 않습니다. 껍질에 떨어지다!” 이 xxx 값을 어디서/어떻게 변경할 수 있나요? grub 구성에 어디에 저장되어 있나요?

내 서버(RAID용)에 몇 개의 디스크가 있고 다양한 배포판을 테스트하기 위한 몇 개의 부팅 파티션이 있습니다. 언젠가 나는 최근(10 버스터) 데비안 32비트와 최근(10 버스터) 데비안 64비트를 가지고 있었는데, 어떤 이유로 데비안 64비트를 더 낮은 파티션으로 옮기기로 결정했습니다(dd를 사용하여 새 파티션을 설정). UUID를 설정하고 해당 파티션의 /etc/fstab에서 업데이트한 다음 이전에 데비안을 옮긴 파티션에 최신(20.1 Ulyssa) Linux Mint Cinnamon을 설치했습니다. Linux Mint를 설치하면 update-grub을 실행하고 Debian 64용 새 파티션을 가져오기 때문에 문제가 발생할 것이라고는 예상하지 못했습니다. 그러나 그 당시 Debian 64비트가 작동을 멈췄습니다. 루트 파티션을 찾을 수 없음을 나타냅니다.

이에 대해 몇 가지 의견이 있습니다: 데비안 설치 프로세스는 UEFI 모드에서 grub을 설치하려고 하면 더 이상 작동하지 않을 수 있는 비 UEFI 파티션이 있을 수 있다는 경고를 제공하는 데 매우 좋습니다(그리고 BIOS에서 시작하도록 제안합니다). 호환 모드) -) Mint는 그다지 신경 쓰지 않는 것 같습니다. 그래서 민트는 UEFI 모드에서 내 그럽을 구성했습니다. 그러나 이상한 점은 Debian 64의 작동이 중단되었지만 Debian 32의 작동은 중단되지 않았다는 것입니다.

나는 grub 프로세스가 나에게 결코 명확하지 않다는 것을 인정해야 하지만, 내가 이해하지 못하는 것은 내 Debian 32에서 grub을 다시 설치하고 업데이트하려고 해도 문제가 해결되지 않았고 다음과 같은 파일을 찾으려고 한다는 것입니다. 두 파티션(Debian 32 & 64)의 /etc & /boot(하위 디렉터리 포함)에 실패한 UUID. 마지막으로 부팅 시 Debian 64의 grub 명령줄을 편집한 다음 Debian 64에서 grub을 다시 설치하고 업데이트하여 문제를 해결했습니다.

그러나 내가 정말로 이해하고 싶은 것은 이 UUID가 어디에 저장되어 있는지(왜 찾을 수 없는지), 그리고 왜 내 Debian 32 파티션에서 이 문제를 해결할 수 없는가입니다.

편집: 명확히 하기 위해: 부팅 중 grub 메뉴에서 커널 매개변수를 편집하여 root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx를 root=/dev/sdxx로 대체하여 부팅할 수 있었고 initrd는 후속 grub 복원 프로세스에서는 수정되지 않습니다. 그러나 /etc & /boot의 압축되지 않은 파일에서 이 UUID 값(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx도 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx도 아님)을 찾을 수 없었습니다.

EDIT2: 좋아... 내가 찾고 있던 것은 /boot/grub/grub.cfg(Archemar 덕분에)에 있었지만 검색에서 정규 표현식을 더듬어서 찾지 못했습니다.

find /boot /etc -type f -print0 | 
    xargs -0 grep -li 'a9c85b02-?751e-?48b5-?b85e-?df60d20b5d3e' 

grep 정규 표현식이 인식하지 못합니까?. 대신 {0,1}을 사용했어야 했는데... :'(

find /boot /etc -type f -print0 | 
    xargs -0 grep -li 'a9c85b02-\{0,1\}751e-\{0,1\}48b5-\{0,1\}b85e-\{0,1\}df60d20b5d3e' 

그러나 Debian 32 파티션에서 grub을 다시 설치하고 재구성했을 때 작동하지 않는 이유는 설명되지 않습니다. 우연히 다른 Linux 파티션을 인식하려면 /boot/grub/grub.cfg해당 파티션의 구문 분석을 기반으로 해야 할까요 ??? :-영형

답변1

vmware에서 부팅+시스템 디스크를 800Gb 디스크에서 16Gb로 이동하고 단순히 파티션과 파일을 복사하고(800Gb 디스크에서 16Gb로) 800Gb 디스크를 삭제하는 것만으로는 비슷한 문제가 발생했습니다(커널 부팅은 정상이지만 /의 UUID를 찾지 못함). . (슬프게도 이 경우 vmware의 스냅샷은 롤백 보호 수단으로 유용하지 않았습니다)

  • 마운트 지점이 /etc/fstab있지만2 fstab
  • 평야 fstab가 들어있다/etc
  • secret 은 부팅 디스크 파티션 에 있거나 이와 유사한 것 /etc/fstab입니다 . 이 fstab은 OS의 (루트 FS)를 가리키는 UUID를 보유합니다.initrd.gz/boot/

initrd이 OS에서 부팅한 경우 다시 빌드하십시오 .

또는 다른 OS에서 부팅한 경우 initrd.gzgzip으로 압축된 cpio, 즉 "간단히" fstab파일을 추출하여 편집하고 initrd.gz.

관련 정보