Новости:

Форуму исполнилось 12 лет!

Мы в матрице .
Мы в телеге .

Главное меню

низкоуровневое форматирование

Автор paradox, 30 мая 2012, 15:23:29

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

paradox

Пытаюсь  сотворить сабж с винтом на 500 Гб.
Но как понял из гугла, есть только вариант затирания нулями при помощи dd
# dd if=/dev/zero of=/dev/sda
Но для 500 Гб жутко долго (уже 4 часа сижу).
Можно как-то убыстрить процесс или может есть уже что-то другое, кроме dd ?

bormant

#1
Что вы понимаете под "низкоуровневым форматированием"? Для современных накопителей это не больше, чем пустой звук -- серводанные пишутся на заводе и вам их никто не даст поменять.

# dd if=/dev/zero of=/dev/sda всего лишь "забивает" нулями сектора на диске, по 512 байт за одно обращение к диску. Если бы добавили bs=8M писалось бы по 8 мегабайт за одно обращение к диску, другие варианты см в "man dd". Смысл в этой операции может быть только один: избавиться от возможности восстановления любых данных, что были на диске. Попутно -- если есть области с чересчур большим временем записи, спровоцировать контроллер на их перемещение в пользовательский список дефектов, но для этого есть более подходящие средства (mhdd, victoria), которые, кстати, умеют стирать диск командами контроллера, ставить на диск пароль и ещё кое-что.

paradox

Цитата: bormant от 30 мая 2012, 18:59:35
Что вы понимаете под "низкоуровневым форматированием"? Для современных накопителей это не больше, чем пустой звук -- серводанные пишутся на заводе и вам их никто не даст поменять.
Да, раньше от производителей были утилиты low level format, а сейчас на их сайте то же самое говориться:
Цитировать
Western Digital provides software utilities that can erase all the data on a hard drive. Writing zeros to a drive is recommended any time an operating system is to be reinstalled on a boot drive or whenever a blank drive is desired.
Цитировать
Actually the term "low level" is a bit of a misnomer. The low-level process first used years ago in MFM hard drives bears little resemblance to what we now call a "low-level format" for today's SATA and ATA (IDE) drives. The only safe method of initializing all the data on a Seagate device is the zero fill erase option in SeaTools for DOS. This is a simple process of writing all zeros (0's) to the entire hard disk drive.
Получается, что dd делает то что нужно...
Тогда что делают утилиты на подобие этой ?
Цитата: bormant от 30 мая 2012, 18:59:35
Если бы добавили bs=8M писалось бы по 8 мегабайт за одно обращение к диску,
А есть максимальный предел bs ?

bormant

Цитата: paradox от 31 мая 2012, 16:43:25
Тогда что делают утилиты на подобие этой ?
Как минимум, приносят авторам
Just $3.30 for personal/home use
$27.00 per seat for commercial or professional use

paradox

Цитата: bormant от 31 мая 2012, 17:41:42
Цитата: paradox от 31 мая 2012, 16:43:25
Тогда что делают утилиты на подобие этой ?
Как минимум, приносят авторам
Just $3.30 for personal/home use
$27.00 per seat for commercial or professional use
Это точно!  ;D
А как насчет bs ?
ЦитироватьА есть максимальный предел bs ?

bormant

#5
paradox,
да вы, батенька, лентяй.

$ wget http://slackware.osuosl.org/slackware-13.37/source/a/coreutils/coreutils-8.11.tar.xz
$ tar xf coreutils-8.11.tar.xz
$ cd coreutils-8.11/src
$ grep -A4 \"bs\" dd.c
          else if (operand_is (name, "bs"))
            {
              invalid |= ! (0 < n && n <= MAX_BLOCKSIZE (INPUT_BLOCK_SLOP));
              blocksize = n;
            }

$ grep MAX_BLOCKSIZE dd.c
#define MAX_BLOCKSIZE(slop) MIN (SIZE_MAX - (slop), MIN (SSIZE_MAX, OFF_T_MAX))

$ grep INPUT_BLOCK_SLOP dd.c
#define INPUT_BLOCK_SLOP (2 * SWAB_ALIGN_OFFSET + 2 * page_size - 1)

$ grep SWAB_ALIGN_OFFSET dd.c
#define SWAB_ALIGN_OFFSET 2

$ grep page_size dd.c
static size_t page_size;
  page_size = getpagesize ();

$ man getpagesize
...



ps. Про наличие какого-никакого скилла в программировании вы сами сознались: http://slackware.su/forum/index.php/topic,65.msg258.html#msg258 ;-)

paradox

Цитата: bormant от 01 июня 2012, 16:09:52
paradox,
да вы, батенька, лентяй.
Не без греха  ::)
Но, если честно, даже и не подумал заглянуть в исходник.
Спасибо!