initramfs/initrd 지원이 없으면 다음 커널 명령줄이 작동하지 않습니다.
linux /bzImage root=UUID=666c2eee-193d-42db-a490-4c444342bd4e ro
initramfs/initrd 없이 루트 파티션을 UUID로 식별하려면 어떻게 해야 합니까?
/dev/sda1
파티션이 USB 스틱에 있고 다른 컴퓨터에서 작동해야 하기 때문에 유사한 장치 이름을 사용할 수 없습니다 .
답변1
묻혀있는 답을 찾았어요다른 스레드:
UUID는 파일 시스템을 식별하고, PARTUUID는 파티션을 식별합니다(즉, 다시 포맷한 후에도 변경되지 않은 상태로 유지됨).initramfs/initrd가 없으면 커널은 PARTUUID만 지원합니다.
컴퓨터에 있는 블록 장치의 PARTUUID를 찾으려면 다음을 사용하세요.
sudo blkid
예를 들어 다음과 같이 인쇄됩니다.
/dev/sda1: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" TYPE="ext2" PARTUUID="f3f4g3f4-02"
이제 다음과 같이 Linux 명령줄을 수정할 수 있습니다.
linux /bzImage root=PARTUUID=f3f4g3f4-02 ro
이 경우 PARTUUID f3f4g3f4-02가 있는 파티션에서 부팅됩니다 /dev/sda1
.
답변2
lsblk
사용 중인 디스크/파티션/uuid를 표시하는 다양한 옵션이 있습니다.
예를 들어
% sudo lsblk -o UUID,PARTUUID,NAME,MOUNTPOINT
UUID PARTUUID NAME MOUNTPOINT
sda
d634adc8-69de-edd8-d491-a79e69aeff78 0008500a-01 |-sda1
195237da-8825-45fb-abf7-a62895bd0967 | `-md0 /boot
d2cf1bcc-d51d-bf37-9723-3b505172fe5f 0008500a-02 `-sda2
24bvXN-PVU1-kubI-Zgj5-W82i-3Z07-v80lME `-md1
67fe5039-de46-4629-bd03-ee65a5dd0132 |-godzilla-root /
ba70f1d1-89f0-4dd9-83a4-8bc9a74a6548 `-godzilla-swap [SWAP]
그러면 UUID가 파티션 UUID d634adc8-69de-edd8-d491-a79e69aeff78
에 해당함 을 알 수 있습니다./dev/sda3
0008500a-01
설정에 따라 다음을 수행할 수 있습니다.
root=/dev/sda1
또는
root=PARTUUID=0008600a-01
(저의 경우 root
LVM의 일부이므로 이 방법으로 설치할 수는 없지만 개념은 적용됩니다)
답변3
UUID=
그것은 유효하지 않습니다. 그대로 받아들이십시오 LABEL=
. 둘 다 파일 시스템이 있는 파티션이 아닌 파일 시스템을 식별합니다.
원천:커널 name_to_dev_t()
은do_mount.c
UUID에 대한 유일한 유효한 커널 명령줄 항목은 입니다 PARTUUID=
. 이 UUID는 파티션에 포함된 파일 시스템이 아닌 파티션 자체에 적용됩니다. ( blkid
출력 참조)
GPT 파티션을 사용하는 경우 PARTLABEL=
보다 사용자 친화적인 버전을 사용해 보세요 :)