Again running smartctl after all is said and done:
smartctl --all /dev/sda
Yet an old drive in itself, I run the wheels off of them, and monitor regularly as anyone should.
First and most importantly, we need to locate the correct drive. In a terminal session (command line), type:
Try to type the commands in, instead of copy/paste, this helps with retention for next time.
In other words, ‘List Block Devices’
This command will list all block devices, hard drives, USB drives, scsi devices, RAID devices and their partitions.
In this case here is what is displayed:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 465.8G 0 disk └─isw_ccheigfjba_Volume0 254:0 0 931.5G 0 dmraid ├─isw_ccheigfjba_Volume01 254:1 0 893.8G 0 dmraid / └─isw_ccheigfjba_Volume05 254:2 0 37.7G 0 dmraid sdb 8:16 0 465.8G 0 disk └─isw_ccheigfjba_Volume0 254:0 0 931.5G 0 dmraid ├─isw_ccheigfjba_Volume01 254:1 0 893.8G 0 dmraid / └─isw_ccheigfjba_Volume05 254:2 0 37.7G 0 dmraid sdc 8:32 1 1.9G 0 disk └─sdc1 8:33 1 1.1G 0 part
We can see ‘sda’ and ‘sdb’ are defined as raid members. Where sdc is a disk, which has one partition ‘sdc1’ ,which is in this case the USB drive we will be working with.
Unmount the device
The USB device will not always be automatically mounted upon insertion, even if it shows as a block device. Depending on previous configurations, so don’t be concerned after running the command if you are told ‘umount: /dev/sdc: not mounted’
At this point we are ready to format and partition the device in one command.
NOTE: Continuing will permanently Destroy and Delete anything on the chosen device.
Format USB Drive:
mkfs.msdos -n 'random' -I /dev/sdc
Where: mkfs.msdos = make file system & partition as msdos
-n = Name the Volume
-I = Partitioning within the block device itself
/dev = Device
/dev/sdc = the device we are formatting and partitioning
mkfs.fat 3.0.27 (2014-11-12) mkfs.fat: warning - lowercase labels might not work properly with DOS or Windows
If you are greeted with something to the effect of:
mkfs.msdos: unable to open /dev/sdc: Device or resource busy
Chances are your USB drive is write protected.
You may be required to install hdparm:
sudo apt-get install hdparm
Then remove the write protection by running:
sudo hdparm -r0 /dev/sdc
/dev/sdc: setting readonly to 0 (off) readonly = 0 (off)
If your still getting errors and care not to save Any data on the drive, you can write zeros to the device by running:
sudo dd if=/dev/zero of=/dev/sdc bs=512 count=1
Then go ahead and try formatting again.
After a successful format, the version, and a warning should be self explanatory.
At this point, the device should have been formatted and partitioned, time depends on how large and complex the partitioning scheme.
In formatting this particular device, a 2GB USB drive, the time was ~3 seconds, for reference.
There are many other type of partitions we can use, such as the following, however in this case, I’m going to be transferring an ISO from one (linux) machine to a non networked (windows) machine. Where msdos is highly compatible.
Examples of file system types: mkfs.msdos; mkfs.ext2; mkfs.ext3; mkfs.ext4; mkfs.vfat and many more depending on the intended application.
You can re-list all block devices to see your final result. Only this time, we want to verify the file system type, so we add the ‘-f’ flag
NAME FSTYPE LABEL UUID MOUNTPOINT sda isw_raid_member └─isw_ccheigfjba_Volume0 ├─isw_ccheigfjba_Volume01 ext4 5ba67ace-a42d-404b-a6dc-eb2a73e8429c / └─isw_ccheigfjba_Volume05 swap 66b5b874-e24c-45df-a669-4b205affa2fc sdb isw_raid_member └─isw_ccheigfjba_Volume0 ├─isw_ccheigfjba_Volume01 ext4 5ba67ace-a42d-404b-a6dc-eb2a73e8429c / └─isw_ccheigfjba_Volume05 swap 66b5b874-e24c-45df-a669-4b205affa2fc sdc vfat random 2B9E-2530 /media/rick/random
As we can see, now /dev/sdc has been formatted and partitioned vfat, which is essentially the same as FAT32 and allows the use of longer volume names, post WIN95.
In other words, it’s compatible for basic storage on linux, as well as readable on windows versions supplied in the last ~20 years.