포트 위치를 물리적으로 바꾸지 않고도 노트북(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에 도움이 될 수 있지만 아직 이와 같은 상황은 발생하지 않았으므로 이는 단지 이론적인 것입니다.