두 개의 NVME SSD 드라이브의 논리 장치 이름을 바꿉니다.

두 개의 NVME SSD 드라이브의 논리 장치 이름을 바꿉니다.

포트 위치를 물리적으로 바꾸지 않고도 노트북(Lenovo Legion 5 Pro 2022)에 설치된 두 개의 NVME SSD 드라이브의 논리적 장치 이름을 바꿀 수 있습니까? 나는 현재가 /dev/nvme0n1되기를 원 /dev/nvme1n1하고 그 반대도 마찬가지입니다. 가능하다면 어떻게 해야 합니까? 내 운영 체제는 Ubuntu 22.04LTS입니다.

답변1

순서를 바꾸는 것이 완전히 불가능한 것은 아니지만 그렇게 해도 문제가 해결되지 않고 더 많은 문제가 발생할 뿐이므로 그렇게 해서는 안 됩니다.

장치 이름은 선착순으로 지정됩니다. 즉, 순서는 언제든지 변경될 수 있습니다.전혀 의존하면 안 된다. (PART-) UUID/LABEL, /LABEL 의 심볼릭 링크 중 하나 /dev/disk/by-*/*또는 LVM 장치 이름(LVM을 사용하는 경우)을 사용하세요.

따라서 이것은 단지 재미를 위한 것입니다(실제 하드웨어에서는 테스트되지 않고 시뮬레이션된 nvme 드라이브를 사용하여 qemu에서 테스트되었습니다).


원래 감지 순서:

# grep nvme /proc/partitions
 259        0   16777216 nvme0n1
 259        1   33554432 nvme1n1
 259        2   67108864 nvme2n1

바인딩을 해제하여 순서를 변경한 후 원하는 순서로 바인딩하세요. 이렇게 하면 시스템에서 NVMe 장치가 완전히 제거되고 처음부터 다시 감지됩니다. 따라서 이는 initramfs에서만 수행될 수 있거나 장치가 전혀 사용되지 않을 때만 수행될 수 있습니다.

# ls /sys/bus/pci/drivers/nvme/
0000:00:04.0  0000:00:05.0  0000:00:06.0  bind  [...]  unbind
# cd /sys/bus/pci/drivers/nvme/
# echo 0000:00:04.0 > unbind
# echo 0000:00:05.0 > unbind
# echo 0000:00:06.0 > unbind
# echo 0000:00:06.0 > bind
# echo 0000:00:04.0 > bind
# echo 0000:00:05.0 > bind

새 주문(nvme2 » nvme0, nvme0 » nvme1, nvme1 » nvme2):

# grep nvme /proc/partitions
 259        0   67108864 nvme0n1
 259        1   16777216 nvme1n1
 259        2   33554432 nvme2n1

종종 이는 어떤 이유로든 비실용적입니다. 즉, 나는 microSD 카드가 제거되거나 변경될 때 장치가 자체적으로 감지할 수 없는 임베디드 장치에서 이전에 이 방법을 사용한 적이 있습니다.

따라서 일부 상황(예: 실패한 카드를 복구하는 경우)에서는 NVMe에 도움이 될 수 있지만 아직 이와 같은 상황은 발생하지 않았으므로 이는 단지 이론적인 것입니다.

관련 정보