Сейчас бывают диски с размером логического сектора 4096 байт.
И если мы решили быть стильно-модно-молодежными, установить на винт таблицу gpt, и использовать в VirtualBox, то возникает проблема.
Делаем диск для добавления в VirtualBox:
VBoxManage internalcommands createrawvmdk -filename nvraw0.vmdk -rawdisk /dev/nvme0n1
После чего добавляем диск в виртуалку, грузимся, в виртуалке запускаем gparted, смотрим размер сектора - 512 байт. И вроде бы все работает, несмотря на реальный размер 4096. На такой диск в виртуалке можно поставить систему, и она даже будет работать - но без виртуалки этот диск будет виден как неразмеченный, без таблицы разделов.
Все потому, что таблица разделов gpt живет по-LBA-шно. (Чем LBA отличается от номера сектора - выяснить не удалось, в моем сообщении подразумевается что это одно и то же). Если диск имеет сектора по 512 байт, то LBA1 начинается с аддреса 512, а если сектора 4096 то с аддреса 4096. Собственно, логика в этом есть - это сектор с индексом 1, все законно и логично. Но тогда получается, что таблица gpt, лежит по плавающему адресу, который зависит от размера сектора. Виртуалбокс думал, что сектор по 512 - сделал таблицу как для 512. Нативный линукс видит сектора по 4096, и ищет gpt по 4096, а его нету там, разумеется. Он по 512 (hexedit-ом проверено).
То, что виртуалбокс плохо поддерживает 4к сектора - это понятно. Но вопрос - че с этим можно сделать?