Как обрезать / сбросить весь раздел SSD на Linux?

раздел /dev/sda3 на SSD диске нет файловой системы, но он содержит мусор. Как выполнить операцию обрезки / удаления всего раздела?

27
задан pts
27.02.2023 3:36 Количество просмотров материала 2980
Распечатать страницу

6 ответов

если ваша версия util-linux достаточно новая (сентябрь 2012 года), то на самом деле есть специально созданный инструмент,blkdiscard, это лучший способ сделать это:

sudo blkdiscard /dev/sda3

но если вам нужна совместимость со старыми версиями дистрибутива Linux, читайте дальше... Бывают случаи, когда hdparm/wiper.sh отказывайтесь касаться Тома, потому что это не раздел, поэтому нам нужно что-то помимо этого.

самый поддерживаемый способ, который я нашел, - это воспользоваться тем фактом, что Linux swap Тома поддерживают сброс, когда они включены. Wipefs на конце есть, поэтому том не распознается как своп позже.

D=/dev/sda3 ; mkswap $D && swapon -d $D && swapoff $D && wipefs -o 0xff6 $D

это выдает сброс на большинстве устройств.

33
отвечен robbat2 2023-02-28 11:24

Я знаю этот вопрос довольно старый, но...

простой способ сделать это-просто создать файловую систему ext4 на разделе с относительно новой версией mkfs.ext4. Первое, что делает этот инструмент-обрезает весь раздел. Как только вы это сделаете, вы можете перезаписать данные, созданные с помощью любой файловой системы, которую вы хотите.

(Я только что сделал это, чтобы создать новый раздел vfat на SD-карте, например.)

8
отвечен David Given 2023-02-28 13:41

hdparm --trim-sector-ranges низкий уровень, он должен напрямую разговаривать с SSD, поэтому не зависит от файловой системы. Что wiper.sh не использовать файловую систему конкретных программ к карте бесплатный (файловая система) регионы (оборудования) твердотельный накопитель секторов, их использование программами hdparm, чтобы обрезать их.

отвечая на вопрос, вы можете использовать hdparm, чтобы обрезать этот раздел, но вы должны быть очень осторожны. Путь сделать его получает ряд участка используемый перегородкой, тогда использует hdparm дальше этот сектор диапазона. Вероятно, вам нужно будет пройти несколько секторных диапазонов, так как каждый диапазон для --trim-sector-диапазонов может иметь максимум 65535 секторов.

программы fdisk -l может сказать вам, начало и размер раздела. Обратите внимание на блоки, используемые fdisk,и на размер сектора SSD.

пример (мой SSD):

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    39070079    19534016   83  Linux

чтобы отбросить пространство перед этим разделом, я мог бы обрезать 2047 (размером 512 байт, на моем SSD) секторов, начиная с сектора 1: hdparm --trim-sector-ranges 1:2047. Я не могу обрезать, начиная с сектора 0, потому что это MBR (не знаю, как это происходит для GPT).

чтобы отбросить пространство, используемое разделом, я бы сделал hdparm --trim-sector-ranges 2048:65535 67583:65535 133118:65535 .... Это может быть написано сценарием, но я не собираюсь писать его сейчас.

кроме того, чтобы быть уверенным: я ничего не гарантирую здесь, я, возможно, неправильно рассчитал сектора, сделайте резервную копию всего, прежде чем эффективно использовать -- trim-sector-ranges.

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

6
отвечен spuk 2023-02-28 15:58

вы могли бы взглянуть на скрипт wiper.sh включенный с пакетом hdparm. Он использует команду hdparm --trim-sector-ranges обрезать все пустые сектора раздела, по крайней мере, если он содержит файловую систему ext3/4. Не уверен, что он работает с неформатированными разделами, но вы всегда можете временно отформатировать его с помощью ext4.

4
отвечен Jaap Eldering 2023-02-28 18:15

blkdiscard может работать на разделах, а не только на целых дисках. Я успешно протестировал его на Fedora 20. Я проверил источники blkdiscard - это очень простая программа, которая ничего не знает о разделах. Я предполагаю, что ядро выполняет перевод.

будь очень осторожен, blkdiscard не задает вопросов и не показывает информацию о прогрессе.

если blkdiscard недоступен, используйте этот скрипт и передайте его вывод в hdparm. Первый аргумент-количество секторов для обрезки, второй - первый сектор для обрезки.

#! /bin/sh
# List ranges for hdparm --trim-sector-ranges-stdin
: ${MAXSECT=65535}
test $# = 2 || { echo "Usage: trimlist sectors offset" >&2; exit 1; }
sectors=
pos=
while test $sectors -gt 0; do
    if test $sectors -gt $MAXSECT; then
            size=$MAXSECT
    else
            size=$sectors
    fi
    echo $pos:$size
    sectors=$(($sectors-$size))
    pos=$(($pos+$size))
done
2
отвечен proski 2023-02-28 20:32

вот интересная статья, в которой говорится об использовании HDDErase для вызова встроенной функции безопасного стирания SSD, которая должна заставить вас хотеть:

http://www.windowsitpro.com/article/file-systems/q-how-can-i-reset-a-solid-state-disk-ssd-to-a-fully-erased-clean-state-

-1
отвечен Chris Thompson 2023-02-28 22:49

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх