nsid의 전역 중복 ID

nsid의 전역 중복 ID

저는 Arch Linux를 사용하고 있으며 두 개의 동일한 SSD(ADATA Swordfish 1TB M.2 NVMe SSD)를 가지고 있습니다. 5월이나 6월부터 업데이트 후 시스템으로 부팅할 수 없습니다(설정으로 인해 부팅하려면 SSD 2개가 필요합니다). Journalctl은 오류를 나열합니다.

nvme nvme0: nsid 1의 전역 중복 ID

lsblkSSD는 하나만 나열됩니다. 최신 버전의 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해당 파티션이 없으므로 및 파티션의 링크만 유지됩니다.nvme0n1p3nvme0n1p4nvme1n1

분명히 다른 ADATA NVMe 모델 중 일부에도 동일한 문제가 있는 것 같습니다.

nvme-pci: ADATA XPG SX6000LNP(SPECTRIX S40G라고도 함)용 NVME_QUIRK_BOGUS_NID 추가

ADATA XPG SPECTRIX S40G 드라이브는 시스템의 드라이브 전체에서 동일하게 보이는 가짜 eui64 값을 보고합니다. "전역적으로 고유하지 않은" 중복 항목으로 표시되지 않도록 수정하세요.

자신만의 사용자 정의 커널을 구축할 수 있는 경우 위에 링크된 패치와 유사한 이상한 항목을 쉽게 추가할 수 있습니다. lspci -nnProductID를 사용하여 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 이상한 메커니즘을 추가했습니다..

관련 정보