Quick Hacks

Quick Hack: Smartctl tests in a nutshell

by on Nov.19, 2019, under Hardware, Miscellaneous, Quick Hacks

This quick hack is a quick “need to know” list of Linux’s smartctl commands for hard drive diagnosis. I highly recommend using a USB drive dock for analyzing suspect drives. These commands are OS agnostic provided you’re running the vendor provided smartctl for either Linux or BSD.

For the purposes of this article, /dev/sdb is the drive under test. Make sure you know which /dev entry corresponds with the desired drive.

smartctl -a /dev/sdb Shows all smart attributes of /dev/sdb including test results, and drive make, model, and serial number.

smartctl -t short /dev/sdb Performs a “short” online test of /dev/sdb. Does not print test results. Does not test disk surface readability.

smartctl -t long /dev/sdb Performs a “long” offline test of /dev/sdb. Does not print test results. Tests the entire disk surface for readability and reallocates bad sectors. If your system is under a lot of disk I/O to the disk under test, this will cause the test to take longer to complete (hence running it in a USB dock or other non-system location)

smartctl -c /dev/sdb Estimates how long the disk check will take in minutes (Usually is wrong though, I wouldn’t set my watch by it.)

smartctl -l selftest /dev/sdb Shows the SMART test results table (instead of smartctl -a which shows EVERYTHING).

smartctl -X /dev/sdb Cancels a test in progress.

NOTES: Re-running smartctl -t against a drive already testing will show an error message which includes how long the test will take to complete (unlike smartctl -l, this time is actually more closer to reality).

In some installations that support it, hdparm -S 0 /dev/sdb will prevent a disk from going to sleep, however in theory, the disk should never sleep if it’s under an active test. This will not stop an ACPI sleep or hibernate event from shutting down the disk.

Happy hacking!
FIRESTORM_v1

Leave a Comment :, more...

Quick Hack: Make a MSDOS Bootable USB drive… with Virtualbox?

by on Jun.29, 2019, under How-To's, Miscellaneous, Quick Hacks

To set the scene for this quick hack, I needed an MSDOS bootable USB drive so that I could flash firmware for a FreeNAS box I was building. Infortunately FreeDOS wasn’t working, unetbootin had failed me, and I was getting desperate. Fortunately VirtualBox to the rescue!… wait, what?

  • Install Virtualbox
  • Acquire a MSDOS .iso from the Internet (they’re out there.)
  • Create a new VM with a 500MB hard drive.
  • Attach the MSDOS iso to the VM and boot it
  • Depending on which MSDOS iso you have, you will need to partition and format the C: drive. Use fdisk to partition the 500MB drive (don’t forget to set it bootable) and then use format c: /s to format the 500MB drive as bootable. Perform the MSDOS installation or copy the DOS directory from the ISO.
  • Shutdown the VM
  • Locate the .VDI for the VM and use VBoxManage to export it to raw: VBoxManage clonehd image.vdi image.img –format raw
  • Use a tool like dd, rawwritewin, or imgburn to write the image.img file to a USB key.
  • Upon successful write, remove then reinsert your USB key. Your machine will mount it as a typical USB drive (Windows/Linux/Mac all behave the same in this regard).
  • Copy over the BIOS flashing utilities, RAID flashing utilities, etc. to the key drive.
  • (Optional) You can also create a \efi\boot directory and place a uefi boot file in there if you need it as well.
  • Eject the USB drive, then boot your target system. The USB disk will show up as drive C:.

The secret sauce is the VBoxManage command. It allows you to export a Virtualbox Disk Image (VDI) to a raw image that can be written to a USB disk. Now you have a solid MSDOS installation on a keydrive for all those damned ROM flashing utilities that will only work in DOS!

Happy hacking!

firestorm_v1

Leave a Comment :, , more...