"/boot"가 포함된 논리 볼륨 "/"을 이동하면 부팅 오류가 발생합니까?

"/boot"가 포함된 논리 볼륨 "/"을 이동하면 부팅 오류가 발생합니까?

나는 그것을 자체 파티션에 두지 않고 LVM 아래에 /두는 Stephen Kitt의 제안을 따랐습니다 ./home/

논리 볼륨 (기본값) /boot에 있는 경우 논리 볼륨을 이동하면 부팅이 실패합니까?/

이 말이 맞는 것 같다면/파일 시스템이 파티션에 있고 파일 시스템에 /boot있습니다./. 디스크에 설치된 Lubuntu로 다시 부팅하려면 grub을 다시 설치해야 하는 것 같습니다.

이와 관련하여 LVM이 어떤 이점을 제공하는지 궁금합니다.

감사해요.

답변1

특정 작업을 수행하면 시작이 실패합니까? 스타트업이 실패하는 원인을 어떻게 정의할 수 있나요? 이전에 시작할 수도 있지만 나중에는 그렇지 않습니다. 그러면 이전에 시작할 수 있었던 것에 만족하지만 나중에 시작할 수 없다는 점도 만족합니까? 우리는 당신이 어떤 일을 한 후에 무슨 일이 일어났는지 알아야 하는데, 그것은 질문에 주어지지 않습니다.

따라서 일부 작업을 수행한 후 다음과 같은 파일 시스템 및 파티션 구성표가 있다고 가정해 보겠습니다(최종 결과에 모두 영향을 미치는 복잡한 저장 구성표 설정이 있을 수 있으므로 이는 단지 가정일 뿐입니다).

/dev/sda유일한 물리적 디스크(GPT 파티션), /dev/sda1ESP, /dev/sda2LVM PV, 두 개의 LV(하나는 for /, 다른 하나는 for) 가 포함된 유일한 VG로 사용됩니다 /home. 시스템에 다른 파일 시스템이 없습니다. 나는 귀하의 링크를 클릭하지 않을 것입니다. 그것은 귀하의 책임입니다.

이제 ESP에 설치된 부트로더로 grub을 사용합니다. ESP는 건드리지 않으므로 UEFI 펌웨어는 성공적으로 grub을 실행하고 완벽하게 실행됩니다. 그러나 Linux를 부팅하려면 grub은 커널과 initramfs를 찾아야 하며 커널(실제로는 initramfs이지만 어쨌든 커널 매개변수이므로 중요하지 않음)에 파일 시스템이 포함된 장치를 알려야 합니다 /.

grub은 커널과 initramfs를 찾을 수 있는 위치를 어떻게 알 수 있나요? 분명히 모든 파일 시스템을 검색할 수는 없으므로 이를 알려주어야 합니다. 어떻게? 이것이 grub.cfg중요해지는 곳 입니다 . grub에게 커널과 initramfs를 찾는 방법과 커널에 전달할 매개변수를 알려줍니다.

그렇다면 당신의 핵심은 어디에 있습니까? 운영 체제를 설치할 때 커널과 initramfs는 항상 /boot새 운영 체제에 설치됩니다. 그러나 어떤 파일 시스템입니까? 이는 설치 중에 이러한 파일 시스템을 마운트한 방법에 따라 다릅니다. 따라서 /별도의 파일 시스템을 설정하지 않았으므로 "파일 시스템"에 있습니다 /boot.

"파일 시스템"은 어디에 있습니까 /? 두 개의 LV 중 하나에 있습니다. 파일 시스템이 포함된 장치는 어디에 있습니까 /? 동일한 LV여야 합니다.

그럼 확인해 보겠습니다 grub.cfg. 올바르게 작성되지 않으면 운영 체제가 부팅되지 않습니다. 그러나 올바르게 작성되면 grub은 initramfs 커널을 올바르게 찾고 올바른 매개변수를 커널에 전달합니다.

grub.cfg아, 제공되지 않아서 확인할 수 없다는 걸 깜빡했네요 . 그럼... 또 그러면 어쩌지? 아니요, grub 매뉴얼에 따르면 grub.cfg이전에 언급한 것처럼 최종 결과에 영향을 미칠 수 있는 복잡한 구성을 너무 많이 지원하므로 여기서 멈추겠습니다. 너무 많은 가정을 하면 우리의 답변이 실제 생활과 너무 동떨어지게 될 뿐입니다.

답변2

디렉터리를 디렉터리에 포함된 내용으로 이동할 수 없기 때문입니다.

$ tree .
.
└── one
    └── two

2 directories, 0 files
$ mv ./one ./one/two/
mv: rename ./one to ./one/two/one: Invalid argument

/다른 위치는 자체적으로 포함되므로 다른 위치로 이동할 수 없습니다 . 이것은 클라인 병이 아닌 파일 시스템입니다.

관련 정보