Lendo a partir do final de uma unidade com o dd

2

Como posso ler a partir do final de uma unidade com dd ? Pensei em usar size - to_read , mas não tenho ideia de como obter o tamanho em bytes.

    
por Dani 16.10.2011 / 06:47

2 respostas

2

Tem que ser 'dd'? O GNU 'ddrescue' tem uma conveniente opção "reversa":

  # 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
    
por 02.04.2012 / 10:03
1

Obtenha um tamanho total de um disco, em bytes:

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  

Obtenha os últimos 100 bytes do disco com o dd:   

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

Observe o tamanho total do disco na primeira linha da saída do fdisk. Eu usei tamanho de bloco de 1 byte, mas é claro que se você estiver copiando mais do que alguns bytes, use blocos de 1K ou 1M. Calcule o tamanho manualmente (divida por 1024) e substitua bs=1 por bs=1024 por blocos de 1K.

    
por 16.10.2011 / 07:13

Tags