이해할 수 없는 이상한 문제가 있습니다.
암호화된 LVM 루트의 부팅 가능한 설치로 Kubuntu 19.04를 설치했습니다.
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465,8G 0 disk
└─sda1 8:1 0 465,8G 0 part
sdb 8:16 0 223,6G 0 disk
├─sdb1 8:17 0 731M 0 part /boot
├─sdb2 8:18 0 1K 0 part
└─sdb5 8:21 0 222,9G 0 part
└─sdb5_crypt 253:0 0 222,9G 0 crypt
├─kubuntu--vg-root 253:1 0 221,9G 0 lvm /
└─kubuntu--vg-swap_1 253:2 0 980M 0 lvm [SWAP]
sdb는 SSD이고 sda는 HDD입니다.
sda는 중요하지 않은 데이터의 대량 저장일 뿐이며 암호화가 없습니다.
cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/kubuntu--vg-root / ext4 errors=remount-ro 0 1
# /boot was on /dev/sdb1 during installation
UUID=5502e3df-bf98-4ec3-9277-0b2d22308be2 /boot ext4 defaults 0 2
/dev/mapper/kubuntu--vg-swap_1 none swap sw 0 0
그리고
/dev/sda1: UUID="86b8c281-dc71-4102-92b5-070843eb2784" TYPE="ext4" PARTUUID="998890db-01"
/dev/sdb1: UUID="5502e3df-bf98-4ec3-9277-0b2d22308be2" TYPE="ext4" PARTUUID="4b7c5ebc-01"
/dev/sdb5: UUID="85e69429-53aa-4348-83d9-cb2b68128ec4" TYPE="crypto_LUKS" PARTUUID="4b7c5ebc-05"
/dev/mapper/sdb5_crypt: UUID="ysVfBL-KvGw-tce2-g1ko-5cUu-ichc-31kfCO" TYPE="LVM2_member"
/dev/mapper/kubuntu--vg-root: UUID="8995e215-a95b-499c-b83d-a12987e20600" TYPE="ext4"
/dev/mapper/kubuntu--vg-swap_1: UUID="72f9eb33-6d0e-4f86-9c3e-d1eb5e83aa63" TYPE="swap"
그래서 IMHO, 모든 것~해야 한다86b8c281-dc71-4102-92b5-070843eb2784인 sda를 제거해도 괜찮습니다. 하지만 이렇게 하면 시스템이 부팅되지 않습니다. 사실 BIOS/UEFI를 보면 실제로 SSD가 아닌 HDD에서 부팅하고 있습니다.
부팅 장치를 SSD로 변경하거나 HDD를 제거해도 아무 일도 일어나지 않습니다. (화면 왼쪽 상단에 깜박이는 밑줄 외에는 아무것도 읽거나 쓸 수 없습니다.)
여기에 문제가 무엇인지(또는 내가 이해한 것) 아는 사람이 있습니까?
추가 정보:
cat /etc/crypttab
sdb5_crypt UUID=85e69429-53aa-4348-83d9-cb2b68128ec4 none luks,discard
답변1
PARTUUID 값의 구문은 디스크가 MBR 파티션과 클래식 BIOS 스타일 부팅을 사용 중일 수 있음을 나타냅니다. 이러한 증상은 파티션이 sda
에 기록되는 대신 sdb
부트 로더가 실제로 에 기록되고 있음을 나타냅니다 . 이는 BIOS 기반 시스템에서 운영 체제 설치 프로그램이 BIOS가 디스크를 확인하는 순서를 반드시 알 수는 없으며, 처음으로 감지된 디스크( )가 BIOS가 시스템을 부팅할 디스크라고 가정하는 경우가 많기 때문입니다. ./boot
sdb1
sda
이를 제거하면 sda
제대로 작동하는 MBR 기반 부트로더가 없게 되며 불행하게도 시스템 BIOS는 이에 대한 좋은 오류 메시지를 제공하지 않습니다.
기본 GRUB 부트 로더를 사용한다고 가정하면 실제 마스터 부트 레코드와 MBR과 첫 번째 파티션의 시작 부분 사이의 공간에 포함됩니다. 따라서 일반 파일이 아니며 하나로 이동하거나 조작할 수 없습니다.
그러나 이 문제는 쉽게 해결됩니다.
먼저 /boot/grub/device.map
파일을 편집해야 합니다.
(hd0) /dev/sdb
이는 곧 사용하게 될 GRUB 설치 도구에 다음과 같이 지시합니다. "새 GRUB 인스턴스를 설치할 때 현재 디스크가 sdb
시스템에서 가장 먼저 감지되는 디스크라고 가정합니다. 제거를 준비하고 있기 때문에 이는 중요합니다." sda
시스템에서 디스크를 삭제합니다.
파일을 성공적으로 수정한 후 다음을 실행해야 합니다.
sudo grub-install /dev/sdb
이는 기존 GRUB 인스턴스에 아무런 해를 끼치지 않지만 sdb
.
이제 디스크를 제거할 수 sda
있으며 시스템은 여전히 정상적으로 부팅됩니다.
원본 sda
디스크가 이제 삭제되었기 때문에, 쿠분투가 디스크 장치 이름을 저장하는 메커니즘을 가지고 있지 않는 한 디스크는 로 나타날 수 있습니다(이 경우 디스크와 이름을 연결하는 기록을 sdb
찾을 수 있습니다 ). sda
따라서 새 시스템 상태와 일치하도록 다시 편집해야 합니다(또는 간단히 파일을 삭제해야 합니다).sdb
/etc/udev/rules.d/
/boot/grub/device.map
(hd0) /dev/sda
GRUB 업데이트가 설치된 경우 이는 중요합니다.