ポートの位置を物理的に変更せずに、ノートブック(Lenovo Legion 5 Pro 2022)にインストールされている2つのNVME SSDドライブの論理デバイス名を変更できますか?私は現在/dev/nvme0n1
になることを望み/dev/nvme1n1
、その逆も同じです。可能であればどうすればよいですか?私のオペレーティングシステムはUbuntu 22.04LTSです。
ベストアンサー1
順序を変更することは完全に不可能ではありませんが、そうしても問題は解決されず、さらに多くの問題が発生するだけなので、そうしてはいけません。
デバイス名は先着順で指定されます。つまり、順序はいつでも変更できます。全く依存してはいけない。 (PART-)UUID / LABEL、/ LABELのシンボリックリンクの1つ、/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に役立ちますが、まだこのような状況は発生していないため、これは理論的です。