• Tutorial: How to mount raw images (.img) images on Linux

    If you have a few .img files coming as disk images from devices like floppies, CDs, DVDs, SD cards, etc, you will realize that  you cannot mount the in Linux, because they contain a file system that has to be mounted.

    In linux you would need to use the mount command as for any physical device, however you need to know the correct syntax that is based on understanding the information related to the partition(s) available in the image.

    First step is to read the partition Start point using fdisk:

    In the terminal type:

    sudo fdisk -l imgfile.img

    You will see an output similar to the one below:
    Device        boot    Start     End         Blocks      Id  System
    imgfile.img1      *             63           266544          722233           C     W95 FAT32 (LBA)
    imgfile.img2                   25679      25367890        245667890+      83    Linux

    As you can see there are two partitions, one that is FAT32 and the other one that it’s ExtFS. This means that to mount the first partition we have to tell Linux that we need to start at the sector 63. The standard sector size is 512 bytes, however there are other possibilities like 128 or 1024. Assuming that the place from where you are downloading the image doesn’t specify any sector size, we can type in the terminal:

    sudo mount -t vfat -o loop,offset=$((63 * 512)) imgfile.img /mnt/disk

    To mount the second partition, as you can imagine:

    mount -t ext4 -o loop,offset=$((25679 * 512)) imgfile.img /mnt/disk1

    It’s important to copy the “Start” sector number correctly, otherwise you’ll get an error message like:

    mount : wrong fs type, bad option, band superblock on /dev/loop,
    missing codepage or helper proggram, or other error
    In some cases useful info is found in syslog – try
    dmesg | tail or so

    One last thing, the standard sector size for CDs and DVDs is 2352 instead of 512. If you are opening such image, you’ll have to use this value instead of 512.

  • Support: PRIME: is it supported? no

    What happens if you see the error message “PRIME: is it supported? no” in the terminal when launching nvidia-settings application to configure your NVIDIA card on your Optimus system?

    Most probably there has been some issues when updating the driver or wrong configuration. The way to fix this is quite simple (tested on Ubuntu and Lubuntu 14.04):

    First of all let’s remove NVIDIA drivers:
    sudo apt-get purge bumblebee*
    sudo apt-get purge nvidia-*

    Then reboot the computer and install the latest version (in my case was nvidia-331-updates):

    sudo apt-get install nvidia-331-updates

    this will install nvidia-settings and nvidia-prime and reboot one last time – your configuration is now correct!

  • Tutorial: Create Bootable USB to upgrade your BIOS (Linux)

    Let’s say that you need to update your BIOS to fix a specific issue or just because you just want to update it or because you want to install a cool mod… In any case, if your machine requires a MS-DOS bootable device to upgrade your BIOS and you are using a Linux distribution, you will be able to create one in just a few steps (tested on Lubutu 14.04):

    1. take an USB stick and plug into your PC

    2. by typing dmesg you will be able to see which is the device name of your USB (as it will appear at the end of the output:

    ie. [ 6801.937032]  sdb: sdb1 <– this means that our device is called /dev/sdb

    3. now make sure you have qemu installed on your system:

    sudo apt-get install qemu

    4. now I guess you have some ms-dos disks around – but no floppy drive right? This means that you’ll have to download a copy of the ms-dos version you own from the internet in img format (any search engine is your friend here)

    5. assuming that the file you’ve downloaded is called “msdos622.img” and it’s saved in a folder called /home/username/dosimage/, we can now build a bootable USB:

    sudo qemu-system-i386 -boot a -fda /home/username/dosimage/msdos622.img -hda /dev/sdb

    6.  MS-DOS should now boot and probably it will just ask you to set a time and date – you can skip this by pressing ENTER when receiving a prompt to update the time/date

    7. now at the DOS prompt type: fdisk

    8. if your USB is already partitioned (and there is a good chance that already is) please follow the instructions on the screen to remove existing partitions (THIS WILL DELETE ANY DATA ON THE USB) and create a new Primary partition

    9. next step is to format the USB:

    format /s c:

    10. Now you can make the USB bootable:

    fdisk /mbr

    Now you can close QEMU and copy from Linux any file you need to update you BIOS and restart the computer to boot from the USB .