Пытаюсь сотворить сабж с винтом на 500 Гб.
Но как понял из гугла, есть только вариант затирания нулями при помощи dd
# dd if=/dev/zero of=/dev/sda
Но для 500 Гб жутко долго (уже 4 часа сижу).
Можно как-то убыстрить процесс или может есть уже что-то другое, кроме dd ?
Что вы понимаете под "низкоуровневым форматированием"? Для современных накопителей это не больше, чем пустой звук -- серводанные пишутся на заводе и вам их никто не даст поменять.
# dd if=/dev/zero of=/dev/sda всего лишь "забивает" нулями сектора на диске, по 512 байт за одно обращение к диску. Если бы добавили bs=8M писалось бы по 8 мегабайт за одно обращение к диску, другие варианты см в "man dd". Смысл в этой операции может быть только один: избавиться от возможности восстановления любых данных, что были на диске. Попутно -- если есть области с чересчур большим временем записи, спровоцировать контроллер на их перемещение в пользовательский список дефектов, но для этого есть более подходящие средства (mhdd, victoria), которые, кстати, умеют стирать диск командами контроллера, ставить на диск пароль и ещё кое-что.
Цитата: 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 делает то что нужно...
Тогда что делают утилиты на подобие этой (http://hddguru.com/software/HDD-LLF-Low-Level-Format-Tool/) ?
Цитата: bormant от 30 мая 2012, 18:59:35
Если бы добавили bs=8M писалось бы по 8 мегабайт за одно обращение к диску,
А есть максимальный предел bs ?
Цитата: paradox от 31 мая 2012, 16:43:25
Тогда что делают утилиты на подобие этой (http://hddguru.com/software/HDD-LLF-Low-Level-Format-Tool/) ?
Как минимум, приносят авторам
Just $3.30 for personal/home use
$27.00 per seat for commercial or professional use
Цитата: bormant от 31 мая 2012, 17:41:42
Цитата: paradox от 31 мая 2012, 16:43:25
Тогда что делают утилиты на подобие этой (http://hddguru.com/software/HDD-LLF-Low-Level-Format-Tool/) ?
Как минимум, приносят авторам
Just $3.30 for personal/home use
$27.00 per seat for commercial or professional use
Это точно! ;D
А как насчет bs ?
ЦитироватьА есть максимальный предел bs ?
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 ;-)
Цитата: bormant от 01 июня 2012, 16:09:52
paradox,
да вы, батенька, лентяй.
Не без греха ::)
Но, если честно, даже и не подумал заглянуть в исходник.
Спасибо!