NVME 디스크에 대한 지원을 추가하려는 sfdisk가 포함된 사용자 정의 LFS 설치 프로그램이 있습니다. 일반 SATA 디스크에서 sfdisk를 사용하여 파티션을 생성하면 모든 것이 예상대로 작동하지만 NVME 디스크에서 똑같은 작업을 수행하면 파티션이 생성되지만 파티션 크기를 얻으려고 하면( 명령 sfdisk -s /dev/nvme0n1p1
)을 출력합니다 No such device or address while trying to determine filesystem size
.
lsblk 출력:
NAME MAJ:MIN SIZE TYPE
nvme0n1 259:0 1.8T disk
|nvme0n1p1 259:1 200G part
`nvme0n1p2 259:10 1.6T part
SF디스크 사용법:
,200G,L
,,L
/proc/파티션
major minor #blocks name
259 0 1953514584 nvme0n1
259 2 209715200 nvme0n1p1
259 3 1743798343 nvme0n1p2
nvme0n1
또한 /dev 아래에 , nvme0n1p1
및 로 나열되어 있습니다 nvme0n1p2
.
이제 사용하면 sfdisk -s /dev/nvme0n1p1
출력을 얻고 209715200
다음 sfdisk -s /dev/nvme0n1p2
을 제공합니다 No such device or address while trying to determine filesystem size
.
이제 이상한 점은 파티션을 다시 생성하고 sfdisk -s /dev/nvme0n1p1
이 작업을 수행하면 다음과 같은 결과가 나온다는 것입니다. No such device or address while trying to determine filesystem size
그러면 sfdisk -s /dev/nvme0n1p2
209715200이 표시됩니다.
반복해서 수행하면 계속 변경되고 한 파티션은 사용할 수 있고 다른 파티션은 사용할 수 없으며 계속 교체됩니다.
내가 시도한 것들:
- 다른 SSD(동일 유형)도 결과는 동일합니다.
- NVME 디스크용 pcie 어댑터를 사용하고 다른 어댑터를 사용해도 동일한 결과가 나타납니다.
- 실행 중인 개방형 suze 설치에서 어댑터를 사용하면 문제 없이 이러한 명령을 실행할 수 있습니다.
- 일반 SATA 드라이버라면 문제 없습니다.
[편집] 재부팅 후 드라이브를 다시 분할할 필요 없이 이러한 명령을 실행할 수 있다는 것을 발견했습니다. 이는 NVME 디스크에는 중요하지만 일반 SATA에는 중요하지 않은 것 같습니까?
현재로서는 무엇을 시도해야 할지, 무엇이 원인일 수 있는지 전혀 모르겠습니다. 도움을 주시면 대단히 감사하겠습니다.
답변1
해결책을 찾았으므로 여기에 답변을 추가하여 다른 사람이 비슷한 문제를 겪는 경우 도움이 될 수 있습니다.
나는 blockdev --rereadpt /dev/nvme0n1
명령을 사용합니다. 이렇게 하면 파티션 테이블이 다시 읽혀지고 이제 sfdisk -s /dev/nvme0n1p2
재부팅하지 않고도 문제 없이 명령을 실행할 수 있습니다.
일반 SATA 드라이브에는 이것이 왜 필요하지 않은지 아직 잘 모르겠습니다. 왜 그렇지 않은지 아는 사람이 있으면 언제든지 의견을 남겨주세요.