Archive for September, 2011

Second virtual host under apache 2

Friday, September 30th, 2011

After messing around with apache 2 configuration files, I finally finally figured out how to add a virtual host sharing the same IP address and port 80. The confusing part is that multiple config files are involved that might step into each other. The key to understand how these different configuration files work together is to be aware of the following statements in  apache2.conf:

# Include all the user configurations:
Include httpd.conf
# Include ports listing
Include ports.conf
# Include generic snippets of statements
Include conf.d/
# Include the virtual host configurations:
Include sites-enabled/

Initially the config files are as follows:

  • httpd.conf is essentially empty at installation time
  • ports.conf contains some default configuration that applies to the default site
  • conf.d is a folder containing module specific configuration files
  • sites-enabled is a folder containing virtual host specific configuration files
Notes:
  • What you put into these configuration files is more a matter of convention than necessity to get everything working.
  • There is another folder called sites-available that contain the configuration files for wannabe virtual hosts. One of these configuration files is default.
  • To create a new virtual host
  • Copy default into let’s say mynewsite.
  • Edit mynewsite and modify modify the folder entries to point to the new site and a line containing “ServerName mynewsite” and save.
  • Edit default and add the following lines:
    ServerName default
    ServerAlias localhost
  • Now, the config files in sites-available are not included by apache2.conf. This folder is just there to safeguard your configuration files.
    • Copy mynewsite into sites-enabled folder. However, to do that, use “a2ensite mynewsite” (which I assume means apache 2 enable site mynewsite). Behind the scenes, this command has for effect to copy virtual host specific files from sites-available folder to sites-enabled folder. You can disable the new web site by issuing “a2dissite mynewsite”. (apache 2 disable site, I presume).
  • Edit /etc/hosts and modify the first line to  “127.0.0.1 localhost mynewsite”. mynewsite should now be ping-able. Restart the apache 2 web server and it should work.
  • Create the new site home folder with a index.html file to be able to test that all works OK.
  • A brief manual on how to use ddrescue

    Monday, September 12th, 2011

    Download and burn Ubuntu rescue remix

    List the available devices, partitions and file systems
    sudo fdisk –l
    Change current folder to /mnt. Note that you could mount anywhere but traditionally, mounts are done under this folder. 
    cd /mnt
    Create a subfolder under which the USB drive will be mounted. This USB drive will be used to save the hard disk image. Note that you should use sudo in order to issue the commands as admin.
    sudo mkdir folder1
    Mount the USB drive on the newly created folder. Use the correct file system (ntfs or vfat for FAT32). Get the correct partition name and number from fdisk -l
    mount -t ntfs /dev/sdxn /mnt/folder1
    Start ddrescue to make an image of the partition into a file called disk.img (you can select any other file name). logfile is used to log the progress. Again, it can be any file name. This will do a first pass on the partition skipping the failed sectors.
    ddrescue /dev/sdxn /mnt/folder1/disk.img logfile
    Reissue the same command specifying -r 3 to retry the failed sectors three times. You can select a different number of retries.
    ddrescue -r 3 /dev/sdxn /mnt/folder1/disk.img logfile
    At this point you can reissue the previous command varying the number of retries to attempt further recovery of sectors that have failed so far.
    To access the recovered data, you can either mount the image on a Linux system  or copy the disk image into a new hard drive. To mount the image, first create a new mount point (an empty folder under /mnt)
    sudo mkdir /mnt/folder2
    Mount the image using the loop device that makes the disk image appears as a physical disk
    mount -o loop –t ntfs /mnt/folder/disk.img /mnt/folder2
    The data can now be accessed by getting into /mnt/folder2 either through the command line or the GUI
    To copy the data into a new partition, issue the following command
    dd if=/mnt/folder1/disk.img of=/dev/sdxn
    where /dev/sdxn refers to the target partition on the new hard drive. Note that this partition should have been created with the exact same size as the original partition. A greater partition than the original would be wasting disk space. Once this is done you can boot Windows and run chkdsk to fix any file system error.
    Warning: Issuing dd command with the wrong parameters can destroy your data. Make sure you specify the correct target device after /of=.