Let’s suppose we have a number expressed in given base (i.e. “E0″ in hexadecimal). How can we convert it to decimal using bash or other common Unix tools? And what if we need to perform an any-to-any base conversion?
First way: printf + hexdump
We can tell bash that a given string is just a disguised hexadecimal number by adding “\x” at the top of it and then using the built-in printf function to recover the number:
$ foo="6F"
$foo2="\x"$foo
$ printf "%b" $foo2 | hexdump -e '1/1 "%d" "\n"'
111
$ printf "%b" $foo2 | hexdump -e '1/1 "%o" "\n"'
157
Please notice that %d makes hexdumo to return a signed integer; if you need an unsigned integer just replace it with %u:
Usually, you won’t create a disk image; in fact most of the times you would download it and then mount it somewhere or burn it to a CD/DVD.
However, there are cases in which you could need to create a disk image of a given size, format it and then mount it as a normal device. This happens for example when you want/need to set up a swap file instead of a swap partition or if you want to get a fake floppy disk drive when you don’t even have the driver.
So, let’s see how can you create, format and mount a floppy disk1 fake image: