Tabla de Contenidos

Discos

DISKS

Toggle a temporary ram partition

  ram() { 
      mt=/mnt/ram && grep "$mt" < /proc/mts > /dev/null
      if [ $? -eq 0 ] ; then 
          read -p"Enter to Remove Ram Partition "
          sudo umount "$mt" && echo $mt 0
      else 
          sudo mt -t tmpfs tmpfs "$mt" -o size=$(( ${1:-1} * 1024 ))m &&\
          echo $mt '-' "${1:-1}"gb
      fi
  }

Mount file system using back-up superblock

  mount -o sb=98304 /dev/sda5 /mnt/data5

Resize A Mounted EXT3 File System

  v=/dev/vg0/lv0
  lvextend -L+200G $v && resize2fs $v

Resize a NTFS partition

  ntfsresize --size X[k,M.G] /dev/hda1

Completly blank a disk (3 options)

  dd if=/dev/zero of=/dev/hda
  
  dd if=/dev/urandom of=/dev/somedisk
  
  shred --iterations=N /dev/sdaX

Copy GPT partition table from /dev/sda to /dev/sdb

  sgdisk /dev/sda -R /dev/sdb && sgdisk -G /dev/sdb

Copy partition table from /dev/sda to /dev/sdb

  sfdisk -d /dev/sda | sed 's/sda/sdb/g' | sfdisk /dev/sdb

Get a list of all browsable Samba shares on the target server.

  smbclient -N -gL \\SambaServer 2>&1 | grep -e "Disk|" | cut -d'|' -f2

Nice disk usage, sorted by size, see description for full command

  du -sk ./* | sort -nr

Outputs a sorted list of disk usage to a text file

  du | sort -gr > file_sizes

Partition a new disk as all one partition tagged as

  echo -e "o\nn\np\n1\n\n\nw\n" | fdisk /dev/sdX

Partition a new disk as all one partition tagged as LINUX\_NATIVE

  echo "0,,L" | sfdisk /dev/sdX

Partition a new disk as all one partition tagged as “LInux LVM”

  echo -e "n\np\n1\n\n\nt\n8e\nw" | fdisk /dev/sdX

Partition a sequence of disk drives for LVM with fdisk

  for x in {a..d}; do 
      echo -e "n\np\n\n\n\nt\n8e\nw\n" | fdisk /dev/sd"$x"
  done

Programmatically partition a new disk with fdisk

  (echo n; echo p; echo 3; echo 1; echo; echo; echo w; echo q) | \
      /sbin/fdisk /dev/sda

Put uuid of disk into variable

  TEST_UUID=$(blkid /dev/sda6 | sed -rn "s/^.*UUID=\"([a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12})\".*/\1/p")

Rescan partitions on a SCSI device

  echo "w" | fdisk /dev/sdb

Securely destroy data on given device

  for i in $(seq 1 25); do 
      dd if=/dev/urandom of=YOUR DISK bs=1M 
  done

Securely erase unused blocks in a partition

  cd $partition
  dd if=/dev/zero of=ShredUnusedBlocks bs=512M
  shred -vzu ShredUnusedBlocks

See the partition

  fdisk -l

Set your ssd disk as a non-rotating medium

  sudo echo 0 > /sys/block/sdb/queue/rotational

See the partition

  partx -l /dev/sdX

Show drive names next to their full serial number (and disk info)

  find /dev/disk/by-id -type l -printf "%l\t%f\n" | cut -b7- | sort

Show drive names next to their full serial number (and disk info)

  lsblk -do name,model,serial

Show simple disk IO table using snmp

  watch -n1 snmptable -v2c -c public localhost diskIOTable

Shred an complete disk, by overwritting its content 10 times

  sudo shred -zn10 /dev/sda

Test file system performance

  bonnie++ -n 0 -u 0 -r PHYSICAL RAM -s <2 x physical ram> -f -b -d MOUNTED DISCK
  time dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
  time dd if=/dev/zero of=TEST bs=4k count=512000
  hdparm -t /dev/sda
  sync; time ''dd if=/dev/cciss/c0d1p1 of=/dev/null bs=1M count=10240''
  sync; time ''dd if=/dev/zero of=bigfile bs=1M count=2048 && sync''
  time dd if=/dev/zero of=dummy_file bs=512k count=200

Clone IDE Hard Disk

  sudo dd if=/dev/hda1 of=/dev/hdb2

wipe of a complete disk with status

  pv -s ''fdisk -l /dev/sdX|grep "Disk /"|cut -d' ' -f5'' /dev/zero >/dev/sdX

Check disk I/O

  iostat -d -x 10 5

SMARTCTL

Smartctl test

smartctl -t short /dev/sdX
smartctl -t long /dev/sdX
smartctl -a /dev/sdX   # Da los resultados.

Read all the S.M.A.R.T. data from a hard disk drive

  smartctl --attributes /dev/sda

Detail info about the hard disk

  hdparm --verbose /dev/sda1

Clone or rescue a block device

  ddrescue -v /dev/sda /dev/sdb logfile.log
  ddrescue -r 1 /dev/old_disk /dev/new_disk rescued.log

Expedient hard disk temprature and load cycle stats

watch -d 'sudo smartctl -a /dev/sda | grep Load_Cycle_Count ;\
    sudo smartctl -a /dev/sda | grep Temp'

HD/CD/DVD images

Get Volume ID (Label) of ISO9660 CD-ROM

  dd if=/dev/cdrom bs=1 skip=32808 count=32 conv=unblock cbs=32 2>/dev/null

ISO info

  isoinfo -d -i filename.iso

Mount a msdos formated floppy disk

  mount -t msdos /dev/fd0 /mnt/floppy

Dump a mounted disk to an ISO image

  dd if=/dev/disk1 of=disk1.iso

Mount a cdrom

  mount -t iso9660 /dev/cdrom /media/cdrom

Mount a .iso file in UNIX/Linux

  mount /path/to/file.iso /mnt/cdrom -oloop

Mount and umount iso files

  function miso () { mkdir ~/ISO_CD && sudo mount -o loop "$@" ~/ISO_CD && cd ~/ISO_CD && ls; } 
  function uiso () { cd ~ && sudo umount ~/ISO_CD && rm -r ~/ISO_CD; }

Mount an iso

  mount -o loop -t iso9660 my.iso /mnt/something

Mount a partition from dd disk image

  mount -o loop,offset=$((512*x)) /path/to/dd/image /mount/path

Mount a VMware virtual disk (.vmdk) file on a Linux box

  kpartx -av IMAGE-FLAT.VMDK; mount -o /dev/mapper/loop0p1 /mnt/vmdk

Mount a VMware virtual disk (.vmdk) file on a Linux box

  sudo mount vmware-server-flat.vmdk /tmp/test/ -o ro,loop=/dev/loop1,offset=32768 -t ntfs

Convert a Nero Image File to ISO

  dd bs=1k if=image.nrg of=image.iso skip=300

Convert .bin / .cue into .iso image

  bchunk IMAGE.bin IMAGE.cue IMAGE.iso

Convert .daa to .iso

  poweriso convert image.daa -o image.iso -ot iso

Create a DOS floppy image

  dd if=/dev/zero bs=1024 count=1440 > floppy.img && mkdosfs floppy.img

Create an ISO

  genisoimage -o ../squeeze.iso -b isolinux/isolinux.bin -c isolinux/boot.cat \
      -no-emul-boot -boot-load-size 4 -boot-info-table -J -R -V disks .