LINUX.ORG.RU

Partition #${X} contains a ${FS} signature

 , , ,


0

1

Можно ли как-то очистить информацию/signature/историю на устройстве (быстро, без dd и на примитивном уровне)? Что замечено и уже на флэшке пробую даже

# wipefs -a -f /dev/sdc
# ( echo g ; echo w ) | fdisk /dev/sdc
# ( echo n ; echo '1' ; echo '' ; echo +4MB ; echo w ) | fdisk /dev/sdc
# mkfs.ext2 -m 0 -L NAME -F /dev/sdc1

и по-новой,

# wipefs -a -f /dev/sdc
# ( echo g ; echo w ) | fdisk /dev/sdc
# ( echo n ; echo '1' ; echo '' ; echo '' ; echo w ) | fdisk /dev/sdc
...
Partition #1 contains a ext2 signature.
...

т.е. информация о том что за ФС была на устройсте откуда-то берется, и я вам скажу больше, даже LABEL виден через

# wipefs /dev/sdc1

так еще и

  • способ # cat /dev/zero > /dev/sdс - не решает ситуацию.
  • Способ с $ sudo wipefs -o 0x1fe /dev/sdaX - подходит, и работает, но как работает, по мне частично, а что скажем если разделов нет и мы создаем новые и тут нам сообщается такое.
  • C dd до No space left on device еще более-менее, но если HDD и >=1Tb - это же долго
# dd if=/dev/zero of=/dev/sdc bs=4096
# ( echo g ; echo w ) | fdisk /dev/sdc
# ( echo n ; echo '1' ; echo '' ; echo '' ; echo w ) | fdisk /dev/sdc
★★★★★

Последнее исправление: NK (всего исправлений: 2)

# wipefs -a -f /dev/sdc

Ты удаляешь сигнатуру фс из MBR? Так её там и не было. Она на sdc1 и других разделах.

Не знаю откуда у тебя желание сделать без dd, ведь это самый простой способ и есть. Затирать надо не весь диск а только то что ты хочешь затереть (а из твоей темы непонятно что именно). Если хочешь чтоб никакие данные с диска точно нельзя было восстановить - то только полное dd и долго ждать. Если хочешь чтобы только не видна была сигнатура файловой системы - то надо затереть начала всех разделов и/или начало диска (всё с помощью dd).

firkax ★★★★★
()
Ответ на: комментарий от vbr

Да тут просто разочарование какое-то, что вроде на примере sgdisk написано

# sgdisk --help
...
-z, --zap (destroy) GPT (but not MBR) data structures
-Z, --zap-all (destroy) GPT and MBR data structures

на деле же, далеко не так получается, в том плане информация вылазит же, что на part1 был раздел и с такой-то ФС, с таким-то Label

NK ★★★★★
() автор топика
Ответ на: комментарий от NK

Да что ж такое? Ещё раз: ты что-то делаешь с таблицей разделов. А сигнатура фс - она не в таблице разделов, а в самом разделе. fdisk ничего с файловыми системами не делает, а в wipefs ты не то устройство передал.

firkax ★★★★★
()
Ответ на: комментарий от firkax

wipefs удаляет не только файловые системы, но и таблицы разделов. Правда, как мне показалось, не умеет всё сразу, то есть сначала надо пройтись по разделам, а потом уже таблицы.

anonymous
()
Ответ на: комментарий от anonymous

А его вроде не таблица разделов беспокоила а файловые системы. Таблицу разделов он вполне успешно смог снести fdisk-ом. Впрочем, кто его знает.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от NK

Я попробую объяснить, что знаю.

  1. Таблица разделов. Для MBR это сколько-то килобайтов в начале диска. Для GPT чуть больше килобайтов и копия в конце диска. Если ты почистишь эти данные (мегабайта хватит с большим запасом), то разделы исчезнут, но если ты пересоздашь таблицу разделов с теми же смещениями и размерами, то всё вернётся как было.

  2. Для каждого раздела есть определённое смещение. Когда ты форматируешь раздел в файловую систему, в начале раздела добавляются какие-то магические данные. Может быть и в конце, или ещё где-то, я точно не знаю.

Поэтому если хочешь прям гарантированно уничтожить все следы о разделах и файловых системах, тебе надо изучить их строение, простого ответа (ну кроме как обнулить весь диск) тут нет.

Кстати в некоторых биосах и дисках есть фишка быстрого удаления. Я так понимаю, SSD использует некий ключ для шифрования всех данных (всегда, даже если это не настраивать) и быстрое удаление просто генерирует новый ключ. После этого на диске всё превращается в полнейший мусор, и это занимает доли секунды для любого размера диска. Я это делал из биоса на некоторых компьютерах. В целом это идеальный вариант, чтобы всё грохнуть.

Ну а вручную - есть wipefs. Его автор изучил особенности файловых систем и тд, почему он тебе не подходит, я пока не очень понял. На всякий случай посоветую сначала пройтись по всем разделам и сделать wipefs на них (wipefs /dev/sda1, wipefs /dev/sda2, …), это удалит сигнатуры файловых систем, а потом уже сделать wipefs /dev/sda, это удалит сигнатуру таблицы разделов. Возможно тебе этого не хватало.

vbr ★★★★
()
Последнее исправление: vbr (всего исправлений: 1)

Вобще, если ssd, то лучше Secure Erase, и данных как-бы нет и все блоки помечены свободными. А запись нулей для многих ssd считается за запись данных, зачем тратить на это ресурс. И выполняется на ssd Secure Erase достаточно быстро. На НЖМД выполняется дольше, но быстрее, чем dd if=/dev/zero.

Это если нужно обнулить накопитель. Пишут, что чтобы гарантированно уничтожить данные на НЖМД от спец методов восстановления, нужно много раз перезаписать, это точно долго. Но, вроде, топик не про это.

А если дело только в ″Partition #1 contains a ext2 signature.″, так укажите fdisk'у аргумент ″-w″. Он сам всё сотрёт.

cat /dev/zero > /dev/sdс - не решает ситуацию

Да ладно, и что после cat'а остаётся?

mky ★★★★★
()
Ответ на: комментарий от vbr

wipefs не подходит ТС

что скажем если разделов нет

Он гипотезирует над ситуаций, что «разделов нет», то есть мы сначала грохнули таблицу разделов, не знаем где они раньше начинались, wipefs на раздел запустить не можем. Потом начинаем создавать разделы и оказывается, что вновь создаваемый раздел совпадает с ранее существовавшим. Получаем сообщение от fdisk, man по fdisk не читаем, создаём тему.

mky ★★★★★
()
Ответ на: комментарий от mky

Спасибо за ответы, fdisk, если не man, то --help точно видел

 -w, --wipe <mode>             wipe signatures (auto, always or never)
 -W, --wipe-partitions <mode>  wipe signatures from new partitions (auto, always or never)

хотя не, читал все же и да признаю, скорей после создания темы, но в любом случае ключи не помогли

       -w, --wipe when
           Wipe filesystem, RAID and partition-table signatures from the device, in order to avoid possible collisions. The argument when can be auto,
           never or always. When this option is not given, the default is auto, in which case signatures are wiped only when in interactive mode. In
           all cases detected signatures are reported by warning messages before a new partition table is created. See also wipefs(8) command.

       -W, --wipe-partitions when
           Wipe filesystem, RAID and partition-table signatures from a newly created partitions, in order to avoid possible collisions. The argument
           when can be auto, never or always. When this option is not given, the default is auto, in which case signatures are wiped only when in
           interactive mode and after confirmation by user. In all cases detected signatures are reported by warning messages before a new partition is
           created. See also wipefs(8) command.

и давайте на примере покажу что получается (я просто хочу не по раздельчикам, а одной командой грохнуть), до этого устройство было /dev/zero забито, воссоздадим

и что после cat’а остаётся?

# wipefs -a -f /dev/sdc
# ( echo g ; echo w ) | fdisk -w always -W always /dev/sdc 
# ( echo n ; echo '1' ; echo '' ; echo +10MB ; echo w ) | fdisk -w always -W always /dev/sdc
# mkfs.ext2 -m 0 -L NAME -F /dev/sdc1

ничего не написало, делаем

# cat /dev/zero > /dev/sdс
cat: write error: No space left on device

и делаем что было выше, и видим

# wipefs -a -f /dev/sdc
# ( echo g ; echo w ) | fdisk -w always -W always /dev/sdc
# ( echo n ; echo '1' ; echo '' ; echo +10MB ; echo w ) | fdisk -w always -W always /dev/sdc
...
Created a new partition 1 of type 'Linux filesystem' and of size 10 MiB.
Partition #1 contains a ext2 signature.
...
NK ★★★★★
() автор топика
Ответ на: комментарий от vbr

Для MBR это сколько-то килобайтов в начале диска. Для GPT чуть больше килобайтов и копия в конце диска

Я знаю/догадываюсь, что вы здесь про Free Space

# wipefs -a -f /dev/sdc
# ( echo g ; echo w ) | fdisk -w always -W always /dev/sdc
# ( echo n ; echo '1' ; echo '' ; echo +4MB ; echo w ) | fdisk -w always -W always /dev/sdc
# parted -s /dev/sdc print free
...
Number  Start   End     Size    File system  Name  Flags
        17.4kB  1049kB  1031kB  Free Space
 1      1049kB  5243kB  4194kB
...

в некоторых биосах и дисках есть фишка быстрого удаления

да, есть такое, припоминаю в msi-am4-mortar, в aorus смотрел,- не нашел

сначала пройтись по всем разделам и сделать wipefs на них

да я хочу все сразу и одной командой, командой не разбитой на циклы или блоки, с одним обращением к устройству, а не по порядку

NK ★★★★★
() автор топика
Ответ на: комментарий от NK

В случае с /dev/loop у меня cat /dev/zero полностью всё забивает нулями, позже, может, попробую на НЖМД, если найду небольшого объёма.

То, что fdisk выводит сигнатуру не критично, он ведь её удаляет, то есть всякие умные правила udev не сработают.

Но если у вас задача именно удалить вобще всё, то только Secure Erase или забивание нулями. wipefs всегда работает по существующим разделам, она не будет сканировать весь диск.

С 2018 года поправили и ″wipefs -a -f /dev/sdc*″ отработает корректно, но только если разделы ещё не удалены. Тем более, если у вас где-то на ФС внутри раздела лежал файл с образом ext2, то эти wipefs никогда не найдёт.

mky ★★★★★
()