If Windows crashed by some reason you can't get into the system, then if you have to reinstall Windows or upgrade to a new hard drive. As long as the Postgres data folder still there then you are lucky to get your database back.
1) install the same version postgres you had on the old system before, say postgres8.3;
2) stop the postgres service from the service form or use the command below:
net stop pgsql-8.3
3) open a CMD, then type in:
runas /user:postgres cmd
The above command will open a command window as postgres role, it will ask for the postgres service password to get the access. Please note here that is not postgres user password;
4) cd into postgres folder:
c:\program files\postgres\
5) delete everything under the data folder;
6) then copy the old data folder(say from U drive) cross, type in the command:
xcopy /H /E /I U:\program files\postgres\data C:\program files\postgres\data
7) restart postgres services from the service form or use the command below:
net start pgsql-8.3
After that, you should be able to log in to use your postgres database as before
How to recover postgres database from postgres data folder
Howto create Loop Device on Linux
This mini howto explain how to create more loop device on your operating system.You need to create more loop device in some case like encrypted file system or HVM xen virtualization. By default there are 7 devices available, named /dev/loop0 through to /dev/loop7.
INFORMATIONS
You can find the loop device like that :
1 | # ls -al /dev/loop* |
2 | brw-r----- 1 root disk 7, 0 Mar 19 09:34 /dev/loop0 |
3 | brw-r----- 1 root disk 7, 1 Mar 19 09:34 /dev/loop1 |
4 | brw-r----- 1 root disk 7, 2 Mar 19 09:34 /dev/loop2 |
5 | brw-r----- 1 root disk 7, 3 Mar 19 09:34 /dev/loop3 |
6 | brw-r----- 1 root disk 7, 4 Mar 19 09:34 /dev/loop4 |
7 | brw-r----- 1 root disk 7, 5 Mar 19 09:34 /dev/loop5 |
8 | brw-r----- 1 root disk 7, 6 Mar 19 09:34 /dev/loop6 |
9 | brw-r----- 1 root disk 7, 7 Mar 19 09:34 /dev/loop7 |
HOT CREATION
Creation of loop8 :
1 | # mknod -m640 /dev/loop8 b 7 8 |
2 | -m640 define the permission of the device |
3 | /dev/loop8 define the name of the device |
4 | b for the creation of the special block device |
5 | 7 8 the number 7 AND 8 define the MAJOR AND the MINOR |
1 | # ls -l /dev/loop8 |
2 | brw-r----- 1 root root 7, 8 Oct 3 14:54 /dev/loop8 |
1 | #chown root:disk /dev/loop8 |
STANDARD CREATION
You have to modify this file /etc/udev/makedev.d/50-udev.nodes
01 | #vim /etc/udev/makedev.d/50-udev.nodes |
02 | loop0 |
03 | loop1 |
04 | loop2 |
05 | loop3 |
06 | loop4 |
07 | loop5 |
08 | loop6 |
09 | loop7 |
10 | loop8 |
11 | parport0 |
12 | parport1 |
13 | parport2 |
14 | parport3 |
15 | net/tun |
16 | ppp |
17 | console |
18 | null |
19 | zero |
MODULE LIMITATION
In the kernel, you have to allow more creation of loop device.
There is an absolute maximum of 256 devices limited in the kernel. The default limit is set to 8.
01 | # modinfo loop |
02 | filename: /lib/modules/2.6.18-53.1.14.el5.centos.plusxen/kernel/drivers/block/loop.ko |
03 | alias: block-major-7-* |
04 | license: GPL |
05 | srcversion: 82DB6DB3DABF3B945D6394D |
06 | depends: |
07 | vermagic: 2.6.18-53.1.14.el5.centos.plusxen SMP mod_unload gcc-4.1 |
08 | parm: max_loop:Maximum number of loop devices (1-256) (int) |
09 | module_sig: 883f35047d15787f0a982eee333b2d8112f51f09f68f09b79223a34983b3aef66820c08 |
10 |
11 | cc6e8cd3709f6d7c56171e5a579ee1ca2ca56349c56b983a7c46 |
1 | #vim /etc/modprobe.conf |
2 | ... |
3 | options loop max_loop=64 |
4 | ... |
The commande line losetup is used for set up and control loop device.
1 | # losetup |
2 | usage: |
3 | losetup loop_device # give info |
4 | losetup -d loop_device # delete |
5 | losetup -f # find unused |
6 | losetup -a # list all used |
7 | losetup -r # read-only loop |
8 | losetup [-e encryption] [-o offset] [-r] {-f|loop_device} file # setup |
How To Tar Files And Folders Easy
in this example, I want to tar my test directory:
Command:
Now to untar:
Command:
DD comand examples
THE DD COMMAND
The dd command copies an amount of data block by block. The most basic syntax is:
Format
# dd if=xxxxx of=yyyyy bs=zzzzzz
( Where if=xxxxx is the source, of=yyyyy is the target and bs= both read and write zzzzz bytes at a time )
Examples:
Copy a hard disk partition to another hard disk:
# dd if=/dev/hda2 of=/dev/hdb2 bs=4096 conv=notrunc,noerror
If hdb2 doesn't exist, dd will start at the beginning of the disk, and create it. Be careful with order of if and of. You can write a blank disk to a good disk if you get confused. If you duplicate a smaller partition to a larger one, using dd, the larger one will now be formatted the same as the smaller one. And there will be no space left on the drive. The way around this is to use
rsync
To make an iso image of a CD: This duplicates sector for sector. MyCD.iso will be a hard disk image file of the CD.
dd if=/dev/hdc of=/home/sam/myCD.iso bs=2048 conv=sync,notrunc
mkdir /mnt/myCD mount -o loop /home/sam/myCD.iso /mnt/myCD
# dd if=/dev/hda of=/dev/hdb conv=notrunc,noerror
Copy a disk partition to a file on a different partition. (Do not copy a partition to the same partition !)
# dd if=/dev/hdb2 of=/home/test/partition.image bs=4096 conv=notrunc,noerror
Restore a disk partition from an image file:
# dd if=/home/test/partition.image of=/dev/hdb2 bs=4096 conv=notrunc,noerror
Mount a existing dd image:
# mount -o loop /path/your-dd-image /mnt/test
Copy MBR only of a hard drive:
# dd if=/dev/hda of=/home/test/MBR.image bs=446 count=1
Reverse:
# dd if=/home/test/MBR.image of=/dev/hda bs=446 count=1
Wipe a hard drive of all data ( you would want to boot from a cd to do this ):
# dd if=/dev/zero of=/dev/hda conv=notrunc
Make an iso image of a CD:
# dd if=/dev/hdc of=/home/test/TEST.iso bs=2048 conv=notrunc
( CD sectors are 2048 bytes, so this copies sector for sector. )
Copy a floppy disk:
# dd if=/dev/fd0 of=/home/test/floppy.image conv=notrunc
You can back up your MBR ( including partition table ):
# dd if=/dev/hda of=mbr.bin count=1
Put this on a floppy you make with:
# dd if=boot.img of=/dev/fd0
Boot from the floppy and restore the MBR:
# dd if=mbr.bin of=/dev/hda count=1
How to check dd progress
===================
By the way, if you need to restore a large image file and want to see what the progress is, you can use the following command from a new terminal session:
kill -USR1 $pid
You can find dd command's pid by using ps and grep commands like:
ps -A | grep dd
If you want to check an automatic progress, use "watch" command:
watch kill -USR1 $pid