使用 dd 从驱动器末尾读取

使用 dd 从驱动器末尾读取

如何使用 从驱动器末端读取数据dd?我考虑过使用,size - to_read但我不知道如何获取字节大小。

答案1

一定要用‘dd’吗?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

答案2

获取磁盘的总大小(以字节为单位):

fdisk -l /dev/sda  

磁盘 /dev/sda:1000.2 GB,1000204886016 字节
255 个磁头、63 个扇区/磁道、121601 个磁柱
单位 = 16065 * 512 = 8225280 字节的柱面

   设备启动开始结束块ID系统
/dev/sda1 * 1 7 56196 fd Linux raid 自动检测
/dev/sda2 8 257 2008125 83 Linux
/dev/sda3 258 121602 974698231+ fd Linux raid 自动检测  

使用 dd 从磁盘获取最后 100 个字节:

  dd if = / dev / sda of = / tmp / endofdisk.data bs = 1 跳过 = 1000204885916 计数 = 100
  

注意 fdisk 输出的第一行上的磁盘总大小。我使用了 1 字节块大小,但当然,如果您要复制超过几个字节,请使用 1K 或 1M 块。手动计算大小(除以 1024)并替换bs=1bs=10241K 块。

相关内容