Вы наблюдаете комбинацию специфического поведения dd
со специфическим поведением Linux /dev/random
. Оба, между прочим, редко являются правильным инструментом для задания.
Linux /dev/random
данные возвратов экономно. Это основано на предположении, что энтропия в генераторе псевдослучайного числа погашена на очень высокой скорости. Начиная со сбора новой энтропии является медленным, /dev/random
обычно оставляет только несколько байтов за один раз.
dd
старая, расшатанная программа, первоначально намеревался воздействовать на накопители на магнитной ленте. Когда Вы говорите этому читать один блок 1 КБ, это пытается считать один блок. Если чтение возвращает меньше чем 1 024 байта, жесткие, это - все, что Вы получаете. Так dd if=/dev/random bs=1K count=2
делает два read(2)
вызовы. Так как это читает из /dev/random
, два read
вызовы обычно возвращают только несколько байтов в переменном числе в зависимости от доступной энтропии. См. также, Когда будет dd подходящий для копирования данных? (или, когда читаются () и запись () неравнодушный),
Если Вы не разрабатываете установщик ОС или клон, Вы никогда не должны использовать /dev/random
в соответствии с Linux, всегда /dev/urandom
. urandom
страница справочника является несколько вводящей в заблуждение; /dev/urandom
на самом деле подходит для криптографии, даже для генерации долговечных ключей. Единственное ограничение с /dev/urandom
это, это должно быть предоставлено достаточной энтропией; дистрибутивы Linux обычно сохраняют энтропию между перезагрузками, таким образом, единственное время, у Вас не могло бы быть достаточной энтропии, находится на новой установке. Энтропия не смягчается на практике. Для получения дополнительной информации читавший рэнд от/dev/urandom, безопасного для ключа входа в систему? и Питание/dev/random энтропийный пул?.
Большая часть использования dd
лучше выражаются инструментами такой как head
или tail
. Если Вы хотите 2 КБ случайных байтов, работаете
head -c 2k rand
С более старыми ядрами Linux Вам могло сойти с рук
dd if=/dev/urandom of=rand bs=1k count=2
потому что /dev/urandom
счастливо возвращенный как много байтов согласно просьбе. Но это больше не верно начиная с ядра 3.16, оно теперь ограничено 32 МБ.
В целом, когда необходимо использовать dd
извлечь постоянное число байтов и его входа не прибывает из регулярного файла или блочного устройства, необходимо считать байт байтом: dd bs=1 count=2048
.
Проверьте, что Ваш модуль не перечислен в файле /etc/modules
. Это списки файлов модули, которые должны быть загружены во время начальной загрузки согласно http://www.debian.org/doc/manuals/debian-faq/ch-kernel.en.html#s-modules
Когда имя модуля - mpt2sas в этом случае - перечислено в файле /etc/modules
:
mpt2sas
"становится"#mpt2sas
".depmod -aeF /boot/System.map-$(uname -r) && update-initramfs -u -k $(uname -r) -t
Добавьте это к своей строке команды загрузки ядра (в, например, Личинка, нажмите e и отредактируйте параметры начальной загрузки ядра):
modprobe.blacklist=mpt2sas
Больше на этом на Wiki Arch.
modprobe.blacklist=mpt2sas
не изменяет загрузку/weak-updates/mpt2sas.ko модуль во время начальной загрузки в нашем случае. уверенный
– Pro Backup
23.12.2012, 21:24
/etc/modules
файл самостоятельно, вероятно. – gertvdijk 28.12.2012, 15:31