Я пытаюсь создать сценарий для удаления всех фрагментов с диска с метками диска Solaris.
bash-3.2# prtvtoc /dev/rdsk/c0t2d0s2
* /dev/rdsk/c0t2d0s2 partition map
*
* Dimensions:
* 512 bytes/sector
* 143374738 sectors
* 143374671 accessible sectors
*
* Flags:
* 1: unmountable
* 10: read-only
*
* Unallocated space:
* First Sector Last
* Sector Count Sector
* 34 222 255
*
* First Sector Last
* Partition Tag Flags Sector Count Sector Mount Directory
0 4 00 256 143358065 143358320
8 11 00 143358321 16384 143374704
bash-3.2# fmthard -d 0:00:0x00:0:0 /dev/rdsk/c0t2d0s2
/dev/rdsk/c0t2d0s2: invalid entry exists in vtoc
bash-3.2# uname -prsm
SunOS 5.10 sun4v sparc
bash-3.2#
Однако срез удаляется, если я запускаю:
bash-3.2# fmthard -d 0:00:0x00:256:0 /dev/rdsk/c0t2d0s2
Вопрос такой:
Ограничение вызвано тем, что метка диска является Этикетка диска EFI он же GPT а не СМИ, он же VTOC.
Разделы (или срезы) не могут перекрываться ни с основной или резервной меткой, ни с любыми другими разделами. Размер метки EFI обычно составляет 34 сектора, поэтому разделы обычно начинаются с сектора 34. Эта функция означает, что ни один раздел не может начинаться с нулевого сектора (0).
В этикетке EFI не хранится информация о цилиндре, головке или секторе. Размеры указаны в блоках.
Смотрите также Руководство системного администратора: устройства и файловые системы - этикетка диска EFI
В fmthard
ошибка была создана vwrite64 (int fd, struct dk_gpt * efi, char * devname) функция, которая является оболочкой для efi_write (3EXT) системный вызов.
Чтобы изменить тип метки диска с EFI GPT на Solaris SMI и уничтожить все данные на диске:
bash-3.2# format -e
Searching for disks...done
AVAILABLE DISK SELECTIONS:
.....
1. c0t1d0 <SUN72G cyl 14087 alt 2 hd 24 sec 424>
/pci@780/pci@0/pci@9/scsi@0/sd@1,0
.....
Specify disk (enter its number): 1
selecting c0t1d0
[disk formatted]
format> label
[0] SMI Label
[1] EFI Label
Specify Label type[1]: 0
Auto configuration via format.dat[no]?
Auto configuration via generic SCSI-2[no]?
format> q
bash-3.2#
Из SMI в GPT:
format> label
[0] SMI Label
[1] EFI Label
Specify Label type[0]: 1
Warning: This disk has an SMI label. Changing to EFI label will erase all
current partitions.
Continue? yes
format> q
Метка диска EFI / GTP была создана ZFS zpool
при использовании всего диска в пуле ZFS. Видеть Руководство администратора Solaris ZFS: Компоненты пула устройств хранения данных ZFS: Использование дисков в пуле устройств хранения данных ZFS