Запись данных по конкретным секторам или блокам

Не уверен, что он лучше подходит для суперпользователя серверных плат, сообщите мне.

У меня есть диск, который я переделал с помощью fdisk . Первоначально был только один большой раздел, теперь есть несколько разделов. Теперь новая таблица разделов не будет учитываться ядром до следующей перезагрузки.

Дело в том, что на этом диске есть некоторые данные, которые совместно используются через NFS и которые должны присутствовать на диске при перезагрузке. Кроме того, я хочу избежать изменения файлов конфигурации, даже временно. Поэтому я хотел бы обеспечить, чтобы эти данные находились в первом разделе /dev/sdb1 , соответствующем предыдущему одиночному разделу, так что они сразу же доступны при следующей загрузке.

Так есть (простой) способ записи данных по конкретным секторам или блокам на диске? Является ли это целью опции dd «искать»? Если мне удастся сделать это, данные будут по-прежнему доступны для чтения при следующей перезагрузке после того, как новый раздел будет учтен, не так ли?

FWIW, объем данных невелик, 2,1 МБ, но /dev/sdb1 составляет всего 82 МБ, а диск – 160 ГБ.

Благодарю.

Изменить: для всей истории и почему я не могу перезагрузить таблицу разделов (что было бы лучшим решением), см. Этот вопрос на serverfault .

Edit2: Хорошо, я, возможно, нашел обходное решение, которое должно было бы копировать файлы из другого места, как только машина перезагрузится, до того, как будет настроена NFS.

Edit3: Nevermind Edit2, новый /dev/sdb1 еще не отформатирован …

Edit4: На самом деле, это последнее редактирование, вероятно, отбрасывает весь вопрос, поскольку это применимо в любом случае. Должен был подумать об этом раньше …

2 Solutions collect form web for “Запись данных по конкретным секторам или блокам”

Вам нужно иметь дело с NFS и заставить его остановить экспорт старого диска. Вы не можете просто игнорировать это, «это не вариант».

Тем не менее, если вы хотите получить прямой доступ к определенному блоку на устройстве, не полагаясь на разделы ядра, тогда да, dd и его параметры seek и skip будут работать. Если вы хотите получить доступ к диапазону секторов в качестве блочного устройства , вы можете использовать устройство loop, которое вы настроили через losetup чтобы иметь определенный предел смещения и размера. Наконец, вы всегда можете загружать новое ядро ​​в виртуальную машину (например, используя libguestfs ) с подключенным устройством /dev/sdb , которое будет читать и использовать разделы, поскольку они хранятся на устройстве.

Почему бы вам не взглянуть на методы, чтобы заставить ядро ​​перечитать таблицу разделов. Например, вы можете использовать partprobe, как описано здесь .

Другой вариант – флаг -R для sfdisk .

Другим вариантом является blockdev, как описано здесь .

  • Могу ли я монтировать раздел из образа полного диска?
  • SD-карта интерпретируется как неправильный размер
  • Как обрабатывать в реальном времени dd?
  • Как изменить размер разделов на полный образ жесткого диска?
  • Почему ddrescue не использует полную пропускную способность?
  • Каков самый быстрый способ записи всех секторов на диске?
  • Странный выход df после ddrescue clone
  • Команда dd не выполняет ничего
  • dd и cat, сообщающие, что на устройстве не осталось места
  • Сравните два файла, в то время как верхний размер второго файла
  • Как создать резервную копию запущенной системы?
  • как это сделать: dd if = coolstuff.iso of = (ssh kev @ mypi)
  • Linux и Unix - лучшая ОС в мире.