Sunday, 20 May 2007

Speed up dynamic linking Using Prelink

ELF prelinking utility to speed up dynamic linking.The prelink package contains a utility which modifies ELF shared libraries and executables, so that far fewer relocations need to be resolved at runtime and thus programs come up faster.

Install Prelink in Ubuntu

First you need to make sure you have enables Universe repositories in /etc/apt/sources.list file and you need to update source list using the following command

sudo apt-get update

Install prelink using the following command

sudo apt-get install prelink

This will complete the installation

Configuring Prelink

You need to edit the /etc/default/prelink file with your favorite editor, as sudo/root

sudo vi /etc/default/prelink

Near the top of the file change the following line

PRELINKING=unknown

to

PRELINKING=yes

Adjust the other options if you know what the you're doing.Defaults work well Save and exit the file.

To start the first prelink it will take long time using the following command

sudo /etc/cron.daily/prelink

In the future, prelink performs a quick prelink (a less-than-1-minute procedure on most systems) daily, usually at midnight. Every 14 days, or whatever you changed it to be, a full prelink will run.

If you just did a major apt-get upgrade that changed systemwide libraries (i.e. libc6, glibc, major gnome/X libs, etc etc etc) and experience cryptic errors about libs, run the following command again

sudo /etc/cron.daily/prelink

To undo prelink,

You need to edit the /etc/default/prelink file with your favorite editor, as sudo/root

sudo vi /etc/default/prelink

Near the top of the file chnage the following line

PRELINKING=yes

to

PRELINKING=no

Save and exit the file and rerun the following command

sudo /etc/cron.daily/prelink

Read More......

Tuesday, 15 May 2007

How to Install Webmin in Ubuntu

Webmin is a web-based interface for system administration for Unix. Using any browser that supports tables and forms (and Java for the File Manager module), you can setup user accounts, Apache, DNS, file sharing and so on.



Webmin consists of a simple web server, and a number of CGI programs which directly update system files like /etc/inetd.conf and /etc/passwd. The web server and all CGI programs are written in Perl version 5, and use no non-standard Perl modules.

Preparing Your System

You need to install the following packages

sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl

Install Webmin in Ubuntu

You can use the above procedure but if you want to install latest version of .deb package you can download from webmin site under Download Section

Download latest webmin using the following command

wget http://prdownloads.sourceforge.net/webadmin/webmin_1.340_all.deb

Now we have webmin_1.340_all.deb package you need to install using the following command

sudo dpkg -i webmin_1.340_all.deb

If your server complains that there is some library things does not find. Just run the following command

sudo apt- get install -f

You should now be able to login to Webmin at the URL https://localhost:10000/

Webmin User Password Change

If you want to change root password in webmin use this included Perl script:

sudo /usr/share/webmin/changepass.pl /etc/webmin root

Read More......

Sunday, 13 May 2007

Ubuntu 7.04 (Feisty Fawn) LAMP Server Setup

Automatic LAMP (Linux, Apache, MySQL and PHP) In about 15 minutes, the time it takes to install Ubuntu Feisty Server Edition, you can have a LAMP server up and ready to go. This feature, exclusive to Ubuntu Server Edition, is available at the time of installation.

The LAMP option saves the trouble of installing and integrating each of the four separate LAMP components, a process which can take hours and requires someone who is skilled in the installation and configuration of the individual applications. You get increased security, reduced time to install, and reduced risk of misconfiguration, all of which results in a lower cost of ownership.

Ubuntu LAMP server Install the following Versions

Ubuntu Feisty Fawn 7.04
Apache 2.2.3
Mysql 5.0.38
PHP 5.2.1

First you need to download server version of Ubuntu version from here after that you create a CD and start booting with the CD Once it starts booting you should see the following screen in this you need to select second option "Install to the Hard disk Option" and press enter



Choose you language and press enter you can see we have selected english in the follwoing screen

Choose your location and press enter you can see we have have selected United Kingdom in the follwoing screen

If you want to try to have your keyboard layout detected by pressing a series of keys you need to select yes option and if you don't want that and you want to choose from a list click no in this example we have selected no and press enter

Select Origin of keyboard and press enter

Select keyboard layout and press enter

Detecting hardware to find CD-ROM Drivers in progress

Scanning CD-ROM in Progress

Loading additional components progress bar



Configures the network with DHCP if there is a DHCP server in the network

Enter the Hostname of the system so in this example i enter here as ubuntulamp


Detecting Disks and Hardware in progress

Startingup the partitioner in progress

you have to partition your hard disk in this example i have selected use entire disk option if you want to edit manually you can choose manual and press enter



Warning message about data lost on your hard disk



Creating partitions in your harddisk

Write the changes to disk option here you need to select yes and press enter



Creating ext3 filesystem in progress

Configuring the clock option here if you want to leave UTC Select yes otherwise no and press enter

You need enter the Full name of the user you want to create for your server in this example i have created administrator user select continue and press enter



username for your account in this i have entered test select continue and press enter



Entered the password for test user select continue and press enter

Confirm the password for test user select continue and press enter

Installing the base system in progress

Configuring package mirror this will be related to your country option

Now it will start Installing software and here you need to select the server options if you want DNS or LAMP i have selected as LAMP for our LAMP server installation



Software Installation in Progress

Installing GRUB Boot loader in progress

Installation complete message here you need to remove your CD select continue and press enter it will reboot your server

After rebooting you can see the following screen prompt for username



This will complete the Ubuntu LAMP Server Installation and your server is ready for installing applications which supports apache,mysql and php.

Enable root Account in Ubuntu server (Not Recommended for security Reasons this is just Optional)

After the reboot you can login with your previously created username (test). Now we will enable the root account using the following command

sudo passwd root

and give root a password.

Now onwards we become root by running the following command

su

Configuring Static ip address in Ubuntu server

Ubuntu installer has configured our system to get its network settings via DHCP, Now we will change that to a static IP address for this you need to edit Edit /etc/network/interfaces and enter your ip address details (in this example setup I will use the IP address 172.19.0.10):

sudo vi /etc/network/interfaces

and enter the following save the file and exit

# The primary network interface

auto eth0
iface eth0 inet static
address 172.19.0.10
netmask 255.255.255.0
network 172.19.0.0
broadcast 172.19.0.255
gateway 172.19.0.1

Now you need to restart your network services using the following command

sudo /etc/init.d/networking restart

You need to setup manually DNS servers in resolv.conf file when you are not using DHCP.

sudo vi /etc/resolv.conf

You need to add look something like this

search domain.com

nameserver xxx.xxx.xxx.xxx

Install SSH Server

If you want to access your server remotely through SSH you need to install SSH server for this you need to run the following command

sudo apt-get install ssh openssh-server

You will be prompted to insert the installation CD again and this will complete SSH server in your Feisty lamp server.

This is really simple and easy server installation for new users and who wants a quick server.

One small Observation i have noticed in Feisty LAMP installation and Edgy,dapper LAMP installation was choosing LAMP server option is available in dapper at the time of booting your server CD and in Feisty,edgy you need to select LAMP server option at the time of software installation.

This might be useful for users who might think there is no LAMP server option at the time of start booting their Feisty server CD.

GUI Installation for Ubuntu LAMP Server

If you are a new user and not familiar with command prompt you can install GUI for your ubuntu LAMP server for this you need to make sure you have enabled Universe and multiverse repositories in /etc/apt/sources.list file once you have enable you need to use the following command to install GUI

sudo apt-get update

sudo apt-get install ubuntu-desktop

The above command will install GNOME desktop if you want to install KDE desktop use the following command

sudo apt-get install kubuntu-desktop

Now you can install webmin for their server web interface to configure apache,mysql servers.

Read More......

Thursday, 10 May 2007

Performance Tweaks for ext3 and ReiserFS filesystems

If you want to Increase ext3 and ReiserFS filesystems Performance use the following Tweaks

Introduction

ext3 Filesystem

The ext3 or third extended filesystem is a journalled file system that is commonly used by the Linux operating system. It is the default file system for many popular Linux distributions

Features of ext3 File System

The ext3 file system is essentially an enhanced version of the ext2 file system. These improvements provide the following advantages

Availability

After an unexpected power failure or system crash (also called an unclean system shutdown), each mounted ext2 file system on the machine must be checked for consistency by the e2fsck program. This is a time-consuming process that can delay system boot time significantly, especially with large volumes containing a large number of files. During this time, any data on the volumes is unreachable.

The journaling provided by the ext3 file system means that this sort of file system check is no longer necessary after an unclean system shutdown. The only time a consistency check occurs using ext3 is in certain rare hardware failure cases, such as hard drive failures. The time to recover an ext3 file system after an unclean system shutdown does not depend on the size of the file system or the number of files; rather, it depends on the size of the journal used to maintain consistency. The default journal size takes about a second to recover, depending on the speed of the hardware.

Data Integrity

The ext3 file system provides stronger data integrity in the event that an unclean system shutdown occurs. The ext3 file system allows you to choose the type and level of protection that your data receives. By default, Most Linux Distributions configures ext3 volumes to keep a high level of data consistency with regard to the state of the file system.

Speed

Despite writing some data more than once, ext3 has a higher throughput in most cases than ext2 because ext3's journaling optimizes hard drive head motion. You can choose from three journaling modes to optimize speed, but doing so means trade offs in regards to data integrity.

Easy Transition

It is easy to change from ext2 to ext3 and gain the benefits of a robust journaling file system without reformatting. See the Section called Converting to an ext3 File System for more on how to perform this task.

ReiserFS

ReiserFS is a general-purpose, journaled computer file system designed and implemented by a team at Namesys led by Hans Reiser.ReiserFS is currently supported on Linux and may be included in other operating systems in the future. Introduced in version 2.4.1 of the Linux kernel, it was the first journaling file system to be included in the standard kernel.

ReiserFS Features

ReiserFS has fast journaling, which means that you don't spend your life waiting for fsck every time your laptop battery dies, or the UPS for your mission critical server gets its batteries disconnected accidentally by the UPS company's service crew, or your kernel was not as ready for prime time as you hoped, or the silly thing decides you mounted it too many times today.

ReiserFS is based on fast balanced trees. Balanced trees are more robust in their performance, and are a more sophisticated algorithmic foundation for a file system. When we started our project, there was a consensus in the industry that balanced trees were too slow for file system usage patterns. We proved that if you just do them right they are better--take a look at the benchmarks. We have fewer worst case performance scenarios than other file systems and generally better overall performance. If you put 100,000 files in one directory, we think its fine; many other file systems try to tell you that you are wrong to want to do it.

ReiserFS is more space efficient. If you write 100 byte files, we pack many of them into one block. Other file systems put each of them into their own block. We don't have fixed space allocation for inodes. That saves 6% of your disk.

Ext3 & ReiserFS has three kinds of journaling methods

1) Journal Data Writeback
2) Journal Data Ordered
3) Journal Data

By default the the 2nd method is used.To speed things up we will make it use method 1. The price to pay is that it may allow old data to appear in files after a crash and journal recovery.

How to make ext3 or reiserfs use journal data writeback

First you need to take fstab file using the following command

sudo cp /etc/fstab /etc/fstab.orig

Edit the /etc/fstab file using the following command

sudo vi /etc/fstab

Add the thing marked in bold to your fstab root mount line.

/dev/hda1 / ext3 defaults,errors=remount-ro,atime,auto,rw,dev,exec,suid,nouser,data=writeback 0 1

Save that file and exit

You need to take Grubmenu file backup using the following command

sudo cp /boot/grub/menu.lst /boot/grub/menu.lst.orig

Now you need to edit the grub menu list file using the following command

sudo vi /boot/grub/menu.lst

look for the following two lines

# defoptions=quiet splash
# altoptions=(recovery mode) single

change to

# defoptions=quiet splash rootflags=data=writeback
# altoptions=(recovery mode) single rootflags=data=writeback

Save that file and exit

Now you need to update the grub using the following command

sudo update-grub

the added flags will automatically be added to the kernel line and stay there in case of kernel update

Changes to Ext3 FileSystem Only

Note:- tune2fs only works for ext3. Reiserfs can't change the journal method

Before rebooting change the filesystem manually to writeback using the following command

sudo tune2fs -o journal_data_writeback /dev/hda1

Check that it is running or not using the following command

sudo tune2fs -l /dev/hda1

Remove update of access time for files

Having the modified time change you can understand but having the system updating the access time every time a file is accessed is not to my liking. According to the manual the only thing that might happen if you turn this off is that when compiling certain things the make might need that info.

To change this do the following

sudo vi /etc/fstab

add the following marked in bold

/dev/hda1 / ext3 defaults,errors=remount-ro,noatime,auto,rw,dev,exec,suid,nouser,data=writeback 0 1

Now reboot and enjoy a much faster system

Read More......

Tuesday, 8 May 2007

Recover Data from a Damaged hard disk using dd_rhelp

dd_rhelp is a bash script that handles a very usefull program written in C which is called dd_rescue, it roughly act as the dd linux command with the caracteristic to NOT stop when it falls on read/write errors.

This makes dd_rescue the best tool for recovering hard drive having bad sectors.In short, it'll use dd_rescue on your entire disc, but will try to gather the maximum valid data before trying for ages on badsectors. So if you leave dd_rhelp work for infinite time, it'll have the same effect as a simple dd_rescue. But because you might not have this infinite time , dd_rhelp will jump over bad sectors and rescue valid data. In the long run, it'll parse all your device with dd_rescue.

You can Ctrl-C it whenever you want, and rerun-it at will, it'll resume it's job as it depends on the log files dd_rescue creates.In addition, progress will be shown in a ASCII picture of your device beeing rescued.

Why use dd_rhelp and not dd_rescue ?

dd_rhelp uses dd_rescue to compute a recovery path through the device that will focus on valid data recovering. This recovery path will go through all the device, exactly as dd_rescue could do it on its own without any path. This means that dd_rhelp will save you time ONLY IF YOU INTEND TO CANCEL ITS JOB BEFORE THE END of a full recovery.

Because a considerable amount of time is taken to try to rescue badsectors. This amount of time can be mesured in days,month, years, depending on your device capacity and its defectiveness. You might not want to spend this time knowing that 99 percent of this time will be taken to look at badsector and won't lead to any more data recovering.

dd_rhelp shifts this useless waiting time to the end. Using dd_rescue strait throughout your device make your waiting time dependent on the badsector distribution.

Install dd_rhelp

First you need to download latest version from here

Preparing your system

sudo apt-get install make gcc g++ ddrescue

Download dd_rhelp using the follwoing command

wget http://www.kalysto.org/pkg/dd_rhelp-0.0.6.tar.gz

Now you have dd_rhelp-0.0.6.tar.gz file

Extract this file using the following command

tar xzvf dd_rhelp-0.0.6.tar.gz

cd dd_rhelp-0.0.6

Run the following commands

sudo ./configure

sudo make

sudo make install

This will complete the installation and this will install program under /usr/local/bin/dd_rhelp

dd_rhelp Syntax

dd_rhelp {filenamedevice} {output-file} [{info}]
or dd_rhelp --help
or dd_rhelp --version

Now we will see how to use ddrescue under damaged disk

If you have a damaged hard disk /dev/sda1 and you have an empty space hard disk /dev/sda2 Now if you want to copy data from /dev/sda1 to /dev/sda2 use the following command

sudo dd_rhelp /dev/sda1 /dev/sda2/backup.img

Output looks like below

/usr/bin/tail: Warning: "+number" syntax is deprecated, please use "-n +number"
=== launched via 'dd_rhelp' at 0k, 0 >>> ===
dd_rescue: (info): ipos: 104384.0k, opos: 104384.0k, xferd: 104384.0k
errs: 0, errxfer: 0.0k, succxfer: 104384.0k
+curr.rate: 10178kB/s, avg.rate: 8532kB/s, avg.load: 31.3%
dd_rescue: (info): /dev/sda2 (104391.0k): EOF
Summary for /dev/sda2 -> backup.img:
dd_rescue: (info): ipos: 104391.0k, opos: 104391.0k, xferd: 104391.0k
errs: 0, errxfer: 0.0k, succxfer: 104391.0k
+curr.rate: 355kB/s, avg.rate: 8519kB/s, avg.load: 31.3%
/usr/bin/tail: Warning: "+number" syntax is deprecated, please use "-n +number"

This copies an image of /dev/sda1 to sda2

Now you need to check the backup image consistency this will check for is there any problems with this image.

sudo fsck -y /dev/sda2/backup.img

After finishing this checking you need to mount your disk image in to your other hard disk

sudo mount /dev/sda2/backup.img /mnt/recoverydata

This will mount all the data from the backup.img under /mnt/recoverydata now you can try to access the data it should work without any problem.

Restore image

If you want to restore this image use the following command

sudo dd_rhelp /dev/sda2/backup.img /dev/sda1

Copy Disk Image to remote machine using SSH

If you want to copy your disk image to remote machine over ssh you need to use the following command

sudo dd_rhelp /dev/sda1 - ssh username@machineip ‘cat /datarecovery/backup.img’

This will be prompetd for password of the username you have menctioned in the above command after entering the password

dd_rhelp strats copying obviously it will take some time to copy over the network.


Read More......