
저는 Arch Linux를 사용하고 있으며 두 개의 동일한 SSD(ADATA Swordfish 1TB M.2 NVMe SSD)를 가지고 있습니다. 5월이나 6월부터 업데이트 후 시스템으로 부팅할 수 없습니다(설정으로 인해 부팅하려면 SSD 2개가 필요합니다). Journalctl은 오류를 나열합니다.
nvme nvme0: nsid 1의 전역 중복 ID
lsblk
SSD는 하나만 나열됩니다. 최신 버전의 Arch Linux에서 두 개의 SSD를 사용할 수 있는 방법이 있습니까?
편집 1:
아치 iso "archlinux-2022.05.01-x86_64"를 라이브 USB로 사용할 때 "nvme nvme0: nsid 1에 대한 전역 중복 ID" 오류 메시지가 표시되지 않고 모든 것이 예상대로 작동합니다.
"archlinux-2022.06.01-x86_64"를 사용하면 오류 메시지가 나타납니다.
편집 2:
"archlinux-2022.06.01-x86_64" iso를 사용하여 로그:
별도의 -l
Model: ELECOM MF-PKU3 (scsi)
Disk /dev/sda: 31.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 20.3GB 20.3GB primary fat32 boot, lba
2 20.3GB 31.0GB 10.7GB primary ext3
Model: ADATA SWORDFISH (nvme)
Disk /dev/nvme1n1: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB ext4 boot
2 538MB 1000GB 1000GB root
lsblk-a
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 688.2M 1 loop
sda 8:0 1 28.9G 0 disk
|-sda1 8:1 1 18.9G 0 part
`-sda2 8:2 1 10G 0 part /usb_data
nvme1n1 259:0 0 931.5G 0 disk
|-nvme1n1p1 259:1 0 512M 0 part
`-nvme1n1p2 259:2 0 931G 0 part
`-myData 254:0 0 931G 0 crypt /
ls -l /dev/disk/by-id/
total 0
lrwxrwxrwx 1 root root 10 Jul 30 13:24 dm-name-myData -> ../../dm-0
lrwxrwxrwx 1 root root 10 Jul 30 13:24 dm-uuid-CRYPT-LUKS2-6dc7a196d80a42c392ca7cb680087d9b-myData -> ../../dm-0
lrwxrwxrwx 1 root root 13 Jul 30 13:27 nvme-ADATA_SWORDFISH_2K38291A16EC -> ../../nvme1n1
lrwxrwxrwx 1 root root 15 Jul 30 13:27 nvme-ADATA_SWORDFISH_2K38291A16EC-part1 -> ../../nvme1n1p1
lrwxrwxrwx 1 root root 15 Jul 30 13:27 nvme-ADATA_SWORDFISH_2K38291A16EC-part2 -> ../../nvme1n1p2
lrwxrwxrwx 1 root root 13 Jul 30 13:27 nvme-eui.00000000010000004ce00018dd8c9084 -> ../../nvme1n1
lrwxrwxrwx 1 root root 15 Jul 30 13:27 nvme-eui.00000000010000004ce00018dd8c9084-part1 -> ../../nvme1n1p1
lrwxrwxrwx 1 root root 15 Jul 30 13:27 nvme-eui.00000000010000004ce00018dd8c9084-part2 -> ../../nvme1n1p2
lrwxrwxrwx 1 root root 9 Jul 30 13:27 usb-ELECOM_MF-PKU3_070825BA33A08E37-0:0 -> ../../sda
lrwxrwxrwx 1 root root 10 Jul 30 13:27 usb-ELECOM_MF-PKU3_070825BA33A08E37-0:0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jul 30 13:27 usb-ELECOM_MF-PKU3_070825BA33A08E37-0:0-part2 -> ../../sda2
편집 3:
"archlinux-2022.05.01-x86_64" iso를 사용하여 로그:
별도의 -l
Model: ELECOM MF-PKU3 (scsi)
Disk /dev/sda: 31.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 20.3GB 20.3GB primary fat32 boot, lba
2 20.3GB 31.0GB 10.7GB primary ext3
Model: ADATA SWORDFISH (nvme)
Disk /dev/nvme0n1: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 106MB 105MB fat32 EFI system partition boot, esp
2 106MB 123MB 16.8MB Microsoft reserved partition msftres
3 123MB 1000GB 1000GB Basic data partition msftdata
4 1000GB 1000GB 540MB ntfs hidden, diag
Model: ADATA SWORDFISH (nvme)
Disk /dev/nvme1n1: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB ext4 boot
2 538MB 1000GB 1000GB root
lsblk-a
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 669.2M 1 loop
sda 8:0 1 28.9G 0 disk
|-sda1 8:1 1 18.9G 0 part
`-sda2 8:2 1 10G 0 part /usb_data
nvme1n1 259:0 0 931.5G 0 disk
|-nvme1n1p1 259:8 0 512M 0 part
`-nvme1n1p2 259:9 0 931G 0 part
`-myData 254:0 0 931G 0 crypt /
nvme0n1 259:3 0 931.5G 0 disk
|-nvme0n1p1 259:4 0 100M 0 part
|-nvme0n1p2 259:5 0 16M 0 part
|-nvme0n1p3 259:6 0 930.9G 0 part
`-nvme0n1p4 259:7 0 515M 0 part
ls -l /dev/disk/by-id/
total 0
lrwxrwxrwx 1 root root 10 Jul 30 15:03 dm-name-myData -> ../../dm-0
lrwxrwxrwx 1 root root 10 Jul 30 15:03 dm-uuid-CRYPT-LUKS2-6dc7a196d80a42c392ca7cb680087d9b-myData -> ../../dm-0
lrwxrwxrwx 1 root root 13 Jul 30 15:04 nvme-ADATA_SWORDFISH_2K38291A16EC -> ../../nvme1n1
lrwxrwxrwx 1 root root 15 Jul 30 15:04 nvme-ADATA_SWORDFISH_2K38291A16EC-part1 -> ../../nvme1n1p1
lrwxrwxrwx 1 root root 15 Jul 30 15:04 nvme-ADATA_SWORDFISH_2K38291A16EC-part2 -> ../../nvme1n1p2
lrwxrwxrwx 1 root root 13 Jul 30 15:04 nvme-ADATA_SWORDFISH_2K382LAAQAWP -> ../../nvme0n1
lrwxrwxrwx 1 root root 15 Jul 30 15:04 nvme-ADATA_SWORDFISH_2K382LAAQAWP-part1 -> ../../nvme0n1p1
lrwxrwxrwx 1 root root 15 Jul 30 15:04 nvme-ADATA_SWORDFISH_2K382LAAQAWP-part2 -> ../../nvme0n1p2
lrwxrwxrwx 1 root root 15 Jul 30 15:04 nvme-ADATA_SWORDFISH_2K382LAAQAWP-part3 -> ../../nvme0n1p3
lrwxrwxrwx 1 root root 15 Jul 30 15:04 nvme-ADATA_SWORDFISH_2K382LAAQAWP-part4 -> ../../nvme0n1p4
lrwxrwxrwx 1 root root 13 Jul 30 15:04 nvme-eui.00000000010000004ce00018dd8c9084 -> ../../nvme1n1
lrwxrwxrwx 1 root root 15 Jul 30 15:04 nvme-eui.00000000010000004ce00018dd8c9084-part1 -> ../../nvme1n1p1
lrwxrwxrwx 1 root root 15 Jul 30 15:04 nvme-eui.00000000010000004ce00018dd8c9084-part2 -> ../../nvme1n1p2
lrwxrwxrwx 1 root root 15 Jul 30 15:04 nvme-eui.00000000010000004ce00018dd8c9084-part3 -> ../../nvme0n1p3
lrwxrwxrwx 1 root root 15 Jul 30 15:04 nvme-eui.00000000010000004ce00018dd8c9084-part4 -> ../../nvme0n1p4
lrwxrwxrwx 1 root root 9 Jul 30 15:04 usb-ELECOM_MF-PKU3_070825BA33A08E37-0:0 -> ../../sda
lrwxrwxrwx 1 root root 10 Jul 30 15:04 usb-ELECOM_MF-PKU3_070825BA33A08E37-0:0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jul 30 15:04 usb-ELECOM_MF-PKU3_070825BA33A08E37-0:0-part2 -> ../../sda2
편집 4:
lspci-nn-d::0108
04:00.0 Non-Volatile memory controller [0108]: Realtek Semiconductor Co., Ltd. Device [10ec:5763] (rev 01)
05:00.0 Non-Volatile memory controller [0108]: Realtek Semiconductor Co., Ltd. Device [10ec:5763] (rev 01)
답변1
lrwxrwxrwx 1 root root 13 Jul 30 15:04 nvme-eui.00000000010000004ce00018dd8c9084 -> ../../nvme1n1
lrwxrwxrwx 1 root root 15 Jul 30 15:04 nvme-eui.00000000010000004ce00018dd8c9084-part1 -> ../../nvme1n1p1
lrwxrwxrwx 1 root root 15 Jul 30 15:04 nvme-eui.00000000010000004ce00018dd8c9084-part2 -> ../../nvme1n1p2
lrwxrwxrwx 1 root root 15 Jul 30 15:04 nvme-eui.00000000010000004ce00018dd8c9084-part3 -> ../../nvme0n1p3
lrwxrwxrwx 1 root root 15 Jul 30 15:04 nvme-eui.00000000010000004ce00018dd8c9084-part4 -> ../../nvme0n1p4
이는 두 개의 NVMe 드라이브가 첫 번째(그리고 아마도 유일한) 네임스페이스에서 동일한 EUI 값을 가지고 있음을 나타내는 것 같습니다. /dev/disk/by-id/nvme-eui.*
의 링크가 nvme0n1
의 해당 링크로 덮어쓰기되었으므로 nvme1n1
해당 파티션이 없으므로 및 파티션의 링크만 유지됩니다.nvme0n1p3
nvme0n1p4
nvme1n1
분명히 다른 ADATA NVMe 모델 중 일부에도 동일한 문제가 있는 것 같습니다.
nvme-pci: ADATA XPG SX6000LNP(SPECTRIX S40G라고도 함)용 NVME_QUIRK_BOGUS_NID 추가
ADATA XPG SPECTRIX S40G 드라이브는 시스템의 드라이브 전체에서 동일하게 보이는 가짜 eui64 값을 보고합니다. "전역적으로 고유하지 않은" 중복 항목으로 표시되지 않도록 수정하세요.
자신만의 사용자 정의 커널을 구축할 수 있는 경우 위에 링크된 패치와 유사한 이상한 항목을 쉽게 추가할 수 있습니다. lspci -nn
ProductID를 사용하여 ADATA Swordfish NVMe용 PCI 공급업체를 찾은 다음 다음과 같이 특이한 항목 목록에 추가할 수 있습니다 <kernel source>/drivers/nvme/host/pci.c
.
{ PCI_DEVICE(0x<vendor ID>, 0x<product ID>), /* ADATA Swordfish 1 TB */
.driver_data = NVME_QUIRK_BOGUS_NID, },
이것중복 ID 확인 기능이 2022년 2월 28일에 업스트림 커널에 추가되었습니다.,로 변경2022-03-29 고유하지 않은 개인 네임스페이스 허용그리고 소유2022년 4월 15일에 NVME_QUIRK_BOGUS_NID 이상한 메커니즘을 추가했습니다..