Быстрый способ рандомизировать HD?

Существуют некоторые причины сделать это как этот путь.

  1. Когда Вы устанавливаете mysql на своей машине Linux. пользователь mysql и группы установили автоматически.

  2. Почему пользователь/группа требуется для этого действия? Это требуется из соображений безопасности. Вы хотите дать разрешение пользователю, какой будет использовать mysql. И также Вы даете разрешение на/data/tmp. Поскольку Ваши файлы базы данных, хранившие там по умолчанию.

14
12.04.2013, 21:02
6 ответов

dd if=/dev/urandom of=/dev/sda, или просто cat /dev/urandom >/dev/sda, самый быстрый путь не состоит в том, чтобы заполнить диск случайными данными. Linux /dev/urandom не самый быстрый криптографический RNG вокруг. Существует ли альтернатива/dev/urandom? имеет некоторые предложения. В частности, OpenSSL содержит более быстрый криптографический PRNG:

openssl rand $(</proc/partitions awk '$4=="sda" {print $3*1024}') >/dev/sda

Обратите внимание, что в конце, существует ли улучшение или не зависит, на который часть является узким местом: ЦП или диск.

Хорошие новости - то, что заполнение диска со случайными данными главным образом бесполезно. Во-первых, для рассеивания общего мифа, вытирающего, обнуляет, так же хорошо на сегодняшних аппаратных средствах. С технологией жесткого диска 1980-х, перезаписывая жесткий диск с обнуляет, оставил небольшой остаточный заряд, который мог быть восстановлен с несколько дорогими аппаратными средствами; несколько передач перезаписи со случайными данными (“очистка Gutmann”) были необходимы. Сегодня даже единственная передача перезаписи с обнуляет листовые данные, которые не могут реалистично быть восстановлены даже в лабораторных условиях.

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

14
27.01.2020, 19:50
  • 1
    Gutmann является мифом в целом, я не думаю, что он на самом деле когда-либо делался для жесткого диска 1980-х также. Ирония - то, что с дисками, становящимися более умными, на самом деле необходимо использовать случайные данные в наше время, чтобы удостовериться, что диск вынужден записать, вместо того, чтобы освободить сектор данные сжатия или (обрезка). Обнуляет только хороши, если они на самом деле записаны. –  frostschutz 12.04.2013, 23:07
  • 2
    @mellowmaroon Да, cat /dev/zero почти всегда достаточно. Это только недостаточно, если Вы хотите скрыться, сколько пространства свободно на зашифрованном томе. –  Gilles 'SO- stop being evil' 13.04.2013, 12:02
  • 3
    @mellowmaroon Это в значительной степени бесполезно. Соглядатай будет знать, что у Вас есть самое большее X МБ данных (и возможно намного меньше, потому что пространство formerly-used-but-now-free неотличимо от использованного пространства), И что? Также местоположение свободного пространства могло бы показать тип файловой системы (копии суперблока); это редко - беспокойство (оно обычно выставляется в открытом тексте /etc/fstab, если Вы не зашифровали корневой раздел, и даже затем нет такого большого числа вероятных вариантов). А-ч –  Gilles 'SO- stop being evil' 14.04.2013, 11:56
  • 4
    @Gilles проблема, с которой я столкнулся в Ubuntu 13.10, является этим openssl rand кажется, имеет верхний предел числа байтов, которые оно генерирует. Если Вы превышаете тот предел, например, 'openssl 810000000000 рэндов, then no random output is generated. Only a brief "help" text is printed. I'm trying to random (pretty much) fill a 3TB hard drive. Not sure if there is a way to get openssl' для создания этого много случайных байтов. –  irrational John 17.01.2014, 07:08
  • 5
    Для проблемы верхнего предела иррационального John's 810 миллиардов байтов выходят приблизительно к 754 ГБ. Как насчет того, чтобы делить Ваш диск в разделы приблизительно на 700 ГБ, затем работая openssl rand команда на каждом разделе в обратном запуске с sda5 или безотносительно и работа назад к sda1 и наконец sda? –  jia103 24.12.2015, 20:31

Завершение ответа Marco, в чем Вы нуждаетесь, является более быстрым генератором случайных чисел.

Вы используете простую программу что echos случайные числа из хорошей библиотеки как boost::random и используйте тот в dd.

При выборе повышения можно использовать этот пример, изменяясь experiment функционируйте к своим потребностям.

0
27.01.2020, 19:50
  • 1
    Сколько быстрее решение для повышения в Вашей системе? Быстрый ненаучный сравнительный тест на моей машине приводит точно к той же скорости как /dev/urandom. –  Marco 12.04.2013, 20:10
  • 2
    boost::random не предлагает crypto RNG, не так ли? Если Вы собираетесь использовать non-crypto RNG, Вы могли бы также использовать, обнуляет: по крайней мере, у Вас не будет иллюзии безопасности. –  Gilles 'SO- stop being evil' 12.04.2013, 21:37
  • 3
    Я могу использовать pkg-конфигурацию для получения флагов, но они не появляются в моем Make-файле. $pkg-config - cflags dbus-glib-1-pthread-I/usr/include/dbus-1.0-I/usr/lib/dbus-1.0/include-I/usr/include/glib-2.0-I/usr/lib/glib-2.0/include $pkg-config - освобождает dbus-glib-1-pthread-L/lib-ldbus-glib-1-ldbus-1-lpthread-lgobject-2.0-lgthread-2.0-lrt-lglib-2.0---------121-------234337----ls-l/var/lib/db2/db2inst1/sqllib/adm/db2syscr, дает мне -r-sr-s--- 1 root db2iadm1 147K Feb 1 23:32 /var/lib/db2/db2inst1/sqllib/adm/db2syscr* ---------121 большое спасибо--------44882----за Ваш ответ. Я уже установил его через виртуальную машину, как объяснено в вышеупомянутом ответе. BTW поле семени mandriva, кажется, более легкая опция. Конечно, попробует его в следующий раз, когда кажется, что $PWD оценен только в первый раз, когда я не могу быть конкретен относительно сколько быстрее boost::random генераторы, единственным способом знать наверняка является мера их самый быстрый алгоритм против /dev/urandom –  RSFalcon7 13.04.2013, 00:48

Узкое место, если ни размер блока, ни жесткий диск, но медленное поколение псевдослучайных чисел. /dev/urandom величинами быстрее по сравнению с /dev/random так как это не блокируется на низком энтропийном пуле.

Можно подтвердить это путем измерения необработанного вывода псевдослучайных чисел:

pv /dev/urandom >/dev/null

Этот уровень будет намного медленнее, чем уровень записи Вашего жесткого диска. Правильное решение полностью зависит на Вашем необходимом уровне безопасности. Если Вы требуете высокой безопасности или используете быстрые аппаратные средства случайный генератор или принимаете низкую скорость. Если Ваши потребности безопасности не состоят в том, что высоко, Вы могли получить несколько дюжин мебибайт данных и записать что строка неоднократно к диску. Или возможно даже запись нулей от /dev/zero опция.

Сводка

/dev/random - безопасный, очень медленный
/dev/urandom - менее безопасный ¹, медленный
аппаратные средства RNG - безопасный, быстрый, очень дорогой
(/dev/zero - не случайный вообще, очень быстро)

¹According к Является рэндом от/dev/urandom, безопасного для ключа входа в систему? /dev/urandom так же безопасно как /dev/random. Благодаря Gilles для указания на это.

0
27.01.2020, 19:50

Вы можете получить OpenSSL для шифрования / dev / Zero с рандомизированным паролем, придавая очень быстрое данные достойного псевдонадома (если ваш процессор поддерживает его ускорение).

openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt < /dev/zero | dd of=/dev/sda

Вы могли бы трусить это через PV , чтобы получить прогресс / ETA. Команды, которые я работаю прямо сейчас (в корневой оболочке):

DISK="sda"
DISKSIZE=$(</proc/partitions awk '$4=="'"$DISK"'" {print sprintf("%.0f",$3*1024)}')
apt-get install pv
openssl enc -aes-256-ctr -nosalt \
  -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" \
  < /dev/zero |
  pv --progress --eta --rate --bytes --size "$DISKSIZE" |
  dd of=/dev/"$DISK" bs=2M

Я получил эту идею из этого ответа , после того, как одинаковую проблему как иррациональный Джон , кто Прокомментировал на ответе на жаль выше. Это увеличило мою скорость Wipe для моего нового RAID-массива от 11 МБ / с до примерно 300 МБ / с, принимая то, что займет неделю до 10 часов.

Я добавлю, что вы должны быть в состоянии использовать openssl rand #of_bytes , а не тем сложнее openssl enc ... Выписать выше, но есть ошибка, которая позволит SSL для создания только 16 МБ вывода. (Эта ошибка была подана, января 2016 года.)

и, согласно ответу на Этот вопрос , и продолжая предполагать, что ЦП - это узкое место, возможно, можно дальше увеличить скорость Запуск нескольких параллельных OpenSSL процессы на отдельных ядрах, объединяющих их с помощью FIFO.

6
27.01.2020, 19:50

Похоже, у меня не работал openssl. Я получил "неизвестные варианты" и другие проблемы с предоставленными решениями. В итоге я выбрал программу fio.

fio -name="fill" -ioengine=libaio -direct=1 -bs=512m -rw=write -iodepth=4 -size=100% -filename=/dev/md0

Похоже, что для обработки 19 ТБ на 24 жестких дисках требуется 3 часа. Так что примерно 1800 МБ / с

smp-016:~ # fdisk -l /dev/md0
Disk /dev/md0: 18890.1 GB, 18890060464128 bytes

smp-016:~ # fio -name="fill" -ioengine=libaio -direct=1 -bs=512m -rw=write -iodepth=4 -size=100% -filename=/dev/md0
fill: (g=0): rw=write, bs=512M-512M/512M-512M/512M-512M, ioengine=libaio, iodepth=4
fio-2.2.10
Starting 1 process
Jobs: 1 (f=1): [W(1)] [2.7% done] [0KB/1536MB/0KB /s] [0/3/0 iops] [eta 03h:01m:11s]

, я надеюсь, это действительно случайные данные. На странице руководства fio написано: «По умолчанию: заполнять буферы случайными данными». http://linux.die.net/man/1/fio

Я делаю это не в целях безопасности / шифрования, просто пытаюсь убедиться, что мои последующие тесты чтения являются фактическими данными, а не просто нулями. Эту же команду fio можно использовать для предварительной подготовки SSD / NVMe. Поскольку просто использование / dev / zero может привести к "обману" сжатия на уровне диска, сколько на самом деле записано. Хотя я бы добавил к нему флаг -loops = 2 , если это новый SSD для тестирования.

Если вы хотите, чтобы он был безопасным, вы можете использовать параметр -randrepeat = bool , так как он будет переключать "Заполнить генератор случайных чисел предсказуемым образом, чтобы результаты повторяются для разных прогонов. По умолчанию: true. ", но я все еще не уверен, насколько это безопасно.

Кроме того, некоторые жесткие диски корпоративного класса имеют SED (диски с самошифрованием), которые позволяют вращать ключ шифрования для мгновенного и безопасного стирания всех записанных данных.

Наконец, в прошлом я использовал DBAN (также известный как Darik's Boot and Nuke), который имеет загрузочные параметры с CD и USB и «является проектом с открытым исходным кодом, размещенным на SourceForge. Программа предназначена для безопасного стирания жесткого диска до тех пор, пока он не данные удаляются безвозвратно и больше не подлежат восстановлению "

6
27.01.2020, 19:50

Я пытался заполнить внешний жесткий диск USB емкостью 4 ТБ dd if=/dev/urandom of=/dev/sdX status=progress, который был слишком медленным (независимо от настроек bs=), и кажется, что opensslимеет ограничение на объем случайных данных. он выведет (по крайней мере для версии 1.0.2p ). Лучшим вариантом, который я нашел, был комментарий от frostschutz для использования shred, как в:

shred -v -n 1 /dev/sdX

Обязательно используйте -n 1, в противном случае по умолчанию устройство будет записываться 3 раза поверх (плюс -v, показывающее прогресс ).Я не думаю, что качество псевдо-случайных чисел такое высокое, но мне этого достаточно, чтобы подготовить портативный HDD большой емкости для шифрования.

2
27.01.2020, 19:50

Теги

Похожие вопросы