Может ли dd без каких-либо параметров, кроме выходного файла и входного файла /dev/urandom, привести к перезаписи других файлов на разделе?

Может ли dd без каких-либо параметров, кроме выходного файла и входного файла /dev/urandom, привести к перезаписи других файлов на разделе?

У меня есть жесткий диск, подключенный через USB-порт.7 ГБсвободного места, которое я попытался заполнить псевдослучайными данными с помощью следующих команд:

$ cd /media/username/volume_name
$ sudo dd if=/dev/urandom of=random_data_file.txt

random_data_file.txtранее не существовало. Я ожидал, что команда создаст файл, запишет в него псевдослучайные данные и остановится, когда содержащий его раздел заполнится. В строке состояния файлового менеджера в конечном итоге отобразилось 0 bytesсвободное место. Но ddкоманда не остановилась, и ни эмулятор терминала, ни файловый менеджер не выдали никаких уведомлений о том, что диск заполнен. После того, как я завершил команду с помощью Ctrl+C, вывод терминала гласил40 ГБбыло написано. Я выбрал файл в менеджере, в строке состояния которого также отображался его размер как40 ГБ, что на 33 ГБ больше предыдущего объема свободного места.

  1. Есть ли вероятность, что эта команда перезаписала или изменила некоторые из моих других файлов, раздел или другие разделы? Или это означает, random_data_file.txtчто было записано и перезаписано 40 ГБ / 7 ГБ = 5,7 раз? Если последнее, то почему файловый менеджер отобразил его размер больше 7 ГБ? После удаления random_data_file.txtс помощью файлового менеджера его строка состояния возвращается к отображению свободного места в размере 7 ГБ.
  2. Как правильно использовать ddкоманду для создания и записи псевдослучайных данных в выходной файл до тех пор, пока содержащий его раздел не заполнится, не перезаписывая ничего (кроме свободного места на том же разделе), включая этот выходной файл?

решение1

Если предположить, что ваше дисковое оборудование исправно (а не мошенническая SD-карта, показывающая фальшивое доступное пространство), а ваша файловая система не повреждена поврежденными свободными списками и файлами, блоки которых все еще находятся в свободном списке, то dd if=/dev/urandom of=random_data_file.txtдиск не будет поврежден и ничего не будет перезаписано (кроме random_datafile.txt).

Вероятно, вам не нужно было указывать sudo перед ней, и если вы не уверены, что ваша команда dd верна, вам определенно не следует запускать ее как sudo.

Одна из возможных причин, по которой было записано больше данных, чем вы ожидали, заключается в том, что большинство файловых систем резервируют немного свободного места (обычно 5%), чтобы root мог продолжать запись, когда обычные пользователи видят, что диск заполнен. (Опять же, не делайте этого с помощью sudo...)

Связанный контент