Назад | Перейти на главную страницу

Метка диска Solaris - удалить фрагмент с помощью fmthard возвращает: в vtoc существует недопустимая запись

Я пытаюсь создать сценарий для удаления всех фрагментов с диска с метками диска 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