2

Как я могу читать с конца диска с dd? Я думал об использовании size - to_read но я не знаю, как получить размер в байтах.

2 ответа2

2

Это должно быть "дд"? GNU 'ddrescue' имеет удобную "обратную" опцию:

  # copy the last 1K from '/dev/sdc' to '/tmp/c_end'
  % ddrescue  --reverse  --max-size=1Ki /dev/sdc /tmp/c_end


  Press Ctrl-C to interrupt
  rescued:      1024 B,  errsize:       0 B,  current rate:     1024 B/s
     ipos:         0 B,   errors:       0,    average rate:     1024 B/s
     opos:         0 B,     time from last successful read:       0 s
  Finished
1

Получить общий размер диска в байтах:

fdisk -l /dev/sda  

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1           7       56196   fd  Linux raid autodetect
/dev/sda2               8         257     2008125   83  Linux
/dev/sda3             258      121602   974698231+  fd  Linux raid autodetect  

Получить последние 100 байтов с диска с помощью dd:

  dd if=/dev/sda of=/tmp/endofdisk.data bs=1 skip=1000204885916 count=100
  

Обратите внимание на общий размер диска в первой строке вывода fdisk. Я использовал 1-байтовый размер блока, но, конечно, если вы копируете более пары байтов, используйте блоки размером 1 КБ или 1 МБ. Рассчитайте размер вручную (разделите на 1024) и замените bs=1 на bs=1024 для блоков размером 1 КБ .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .