Sponsored Content
Top Forums Shell Programming and Scripting Enhanced partition copy script (new & improved!) Post 302448738 by jwzumwalt on Friday 27th of August 2010 12:00:50 AM
Old 08-27-2010
I'm not sure I understand what you are asking but here is a bit of additional information that may or may not answer your question.

The partition information for an entire drive is kept in the MBR (master boot record). There is no separate or individual information block available. Therefore my program (and any other) that attempts to save the first 512 bytes of a partition (which is the mbr) for any partition other than the first will receive an error.

My program does not attempt to stop someone from saving an invalid MBR block on other partitions. dd is smart enough to notice that an attempt is being made to save the MBR of an invalid partition and will shoot out an error message, but it still saves the invalid 512 byte block.

This first example will work because the mbr is actualy at the start of partition 1
Code:
dd if=hda1 of=partition.mbr.img count=1 bs=512

This example will cause an error message because the 2nd partition does not have an mbr!
Code:
dd if=hda2 of=partition.mbr.img count=1 bs=512

My thinking is that there may be some special case that I am not aware of that a user may need that 512 byte block. So, I trust the users judgment.

In the future, I will place some type of error trap and give sa message to the user that explains what is going on.

I hope this information helps.

Jan Zumwalt
 

9 More Discussions You Might Find Interesting

1. Gentoo

How to copy single partition?

I presently backup my multi-OS multi-paritition boot drive (fedora core 4/ext3, WinXPServer/NTFS, WinXPHome/FAT32) with the command: telinit 1; cp /dev/sda /dev/sdb And this works. Is there a command to only copy a single partition instead of an entire device? And what about the grub... (12 Replies)
Discussion started by: siegfried
12 Replies

2. UNIX for Dummies Questions & Answers

slice & partition???

:confused: Hello, What is the difference between slice and partition on Solaris world? Regards (4 Replies)
Discussion started by: XNOR
4 Replies

3. Shell Programming and Scripting

How do I search first&second string & copy all content between them to other file?

Hi All, How do I search first string & second string and copy all content between them from one file to another file? Please help me.. Thanks In Advance. Regards, Pankaj (12 Replies)
Discussion started by: pankajp
12 Replies

4. UNIX for Advanced & Expert Users

copy a whole partition excluding specified.

Scenario: I would want to copy my / to /mnt, and to avoid recursion exclude /mnt. cp -avx / /mnt If i use the above i believe it would run recursively, and end up in mess. So how to do it ?! Basically this / is sda1, and /mnt is sda2 and sda1 is where only OS is available & currently... (2 Replies)
Discussion started by: thegeek
2 Replies

5. Shell Programming and Scripting

Perl Script to find & copy words from Web.

I need to write a perl script to search for a specific set of numbers that occur after a series of words but before another. Specifically, I need to locate the phrase today at the summit, then immediately prior to the words tonnes/day copy the number that will be between 100 and 9,999, for example,... (1 Reply)
Discussion started by: libertyforall
1 Replies

6. Filesystems, Disks and Memory

Using dd to copy a partition.

Here's a conundrum. I use a ThinkPad (T30) which has a slot on the side for the hard drive. It is very easy to swap this with another hard drive which I keep as a backup. Now when I copy the Linux partition from my (in use) hard drive to the backup one (in my UltraBay slot) it takes only 30... (0 Replies)
Discussion started by: newyorkpaulie
0 Replies

7. Shell Programming and Scripting

Compare & Copy Directories : Bash Script Help

Beginner/Intermediate shell; comfortable in the command line. I have been looking for a solution to a backup problem. I need to compare Directory 1 to Directory 2 and copy all modified or new files/directories from Directory 1 to Directory 3. I need the directory and file structure to be... (4 Replies)
Discussion started by: Rod
4 Replies

8. Shell Programming and Scripting

Script to overwrite & before that keep copy a file on many servers

I have ssh password less auth enable & script does the job well as well #/bin/bash for i in `cat ip` do scp /etc/resolv.conf root@$ip done But I need to take backup of the file i will overwrite .. is there any simple way ? Kindly respond (5 Replies)
Discussion started by: heman96
5 Replies

9. Red Hat

Shrink LVM partition & create new Linux Primary partition

Hello All, I have a Red Hat Linux 5.9 Server installed with one hard disk & 2 Partitions created on it as follows, /boot - Linux Partition & another is LVM - One VG & under that 5-6 Logical volumes(var,opt,home etc). Here my requirement is to take out 1GB of space from LVM ( Any logical... (5 Replies)
Discussion started by: gr8_usk
5 Replies
MKIMG(1)						    BSD General Commands Manual 						  MKIMG(1)

NAME
mkimg -- utility to make disk images SYNOPSIS
mkimg [-H heads] [-P blksz] [-S secsz] [-T tracksz] [-b bootcode] [-f format] [-o outfile] [-v] [-y] -s scheme -p partition [-p partition ...] mkimg --formats | --schemes | --version DESCRIPTION
The mkimg utility creates a disk image from the raw partition contents specified with the partition argument(s) and using the partitioning scheme specified with the scheme argument. The disk image is written to stdout by default or the file specified with the outfile argument. The image file is a raw disk image by default, but the format of the image file can be specified with the format argument. The disk image can be made bootable by specifying the scheme-specific boot block contents with the bootcode argument and, depending on the scheme, with a boot partition. The contents of such a boot partition is provided like any other partition and the mkimg utility does not treat it any differently from other partitions. Some partitioning schemes need a disk geometry and for those the mkimg utility accepts the tracksz and heads arguments, specifying the number of sectors per track and the number of heads per cylinder (resp.) Both the logical and physical sector size can be specified and for that the mkimg utility accepts the secsz and blksz arguments. The secsz argument is used to specify the logical sector size. This is the sector size reported by a disk when queried for its capacity. Modern disks use a larger sector size internally, referred to as block size by the mkimg utility and this can be specified by the blksz argument. The mkimg utility will use the (physical) block size to determine the start of partitions and to round the size of the disk image. The [-v] option increases the level of output that the mkimg utility prints. The [-y] option is used for testing purposes only and is not to be used in production. When present, the mkimg utility will generate pre- dictable values for Universally Unique Identifiers (UUIDs) and time stamps so that consecutive runs of the mkimg utility will create images that are identical. A set of long options exist to query about the mkimg utilty itself. Options in this set should be given by themselves because the mkimg utility exits immediately after providing the requested information. The version of the mkimg utility is printed when the --version option is given. The list of supported output formats is printed when the --formats option is given and the list of supported partitioning schemes is printed when the --schemes option is given. Both the format and scheme lists a space-separated lists for easy handling in scripts. For a more descriptive list of supported partitioning schemes or supported output format, or for a detailed description of how to specify partitions, run the mkimg utility without any arguments. This will print a usage message with all the necessary details. ENVIRONMENT
TMPDIR Directory to put temporary files in; default is /tmp. EXAMPLES
To create a bootable disk image that is partitioned using the GPT scheme and containing a root file system that was previously created using makefs and also containing a swap partition, run the mkimg utility as follows: % mkimg -s gpt -b /boot/pmbr -p freebsd-boot:=/boot/gptboot -p freebsd-ufs:=root-file-system.ufs -p freebsd-swap::1G -o gpt.img The command line given above results in a raw image file. This is because no output format was given. To create a VMDK image for example, add the -f vmdk argument to the mkimg utility and name the output file accordingly. A nested partitioning scheme is created by running the mkimg utility twice. The output of the first will be fed as the contents of a parti- tion to the second. This can be done using a temporary file, like so: % mkimg -s bsd -b /boot/boot -p freebsd-ufs:=root-file-system.ufs -p freebsd-swap::1G -o /tmp/bsd.img % mkimg -s mbr -b /boot/mbr -p freebsd:=/tmp/bsd.img -o mbr-bsd.img Alternatively, the mkimg utility can be run in a cascaded fashion, whereby the output of the first is fed directly into the second. To do this, run the mkimg utility as follows: % mkimg -s mbr -b /boot/mbr -p freebsd:-'mkimg -s bsd -b /boot/boot -p freebsd-ufs:=root-file-system.ufs -p freebsd-swap::1G' -o mbr-bsd.img To accomodate the need to have partitions named or numbered in a certain way, the mkimg utility allows for the specification of empty parti- tions. For example, to create an image that is compatible with partition layouts found in /etc/disktab, the 'd' partition often needs to be skipped. This is accomplished by inserting an unused partition after the first 2 partition specifications. It is worth noting at this time that the BSD scheme will automatically skip the 'c' partition by virtue of it referring to the entire disk. To create an image that is com- patible with the qp120at disk, use the mkimg utility as follows: % mkimg -s bsd -b /boot/boot -p freebsd-ufs:=root-file-system.ufs -p freebsd-swap::20M -p- -p- -p- -p- -p freebsd-ufs:=usr-file-system.ufs -o bsd.img For partitioning schemes that feature partition labels, the mkimg utility supports assigning labels to the partitions specified. In the fol- lowing example the file system partition is labeled as 'backup': % mkimg -s gpt -p freebsd-ufs/backup:=file-system.ufs -o gpt.img SEE ALSO
gpart(8), makefs(8), mdconfig(8), newfs(8) HISTORY
The mkimg utility first appeared in FreeBSD 10.1. AUTHORS
The mkimg utility and manpage were written by Marcel Moolenaar <marcelm@juniper.net> BSD
September 27, 2014 BSD
All times are GMT -4. The time now is 06:35 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy