hard drives (source and destination). Create the destination volume, which can be any size greater than or equal to the source. Then use an XCOPY command such as: XCOPY D:\ M:\ /E /C /H /K /O /X /Y This generally works, preserving the directory structure, attributes, ownership and security. Consult documentation for XCOPY for syntax details. This command should work on Windows 2000 and Windows XP. Note that encrypted filesystems likely can not be copied this easily. Copying (and resizing) an ext2, ext3, reiserfs... Linux volume Linux volumes are much easier to copy/resize, even the root filesystem itself. You should boot an active Linux system with the two hard drives (source and destination) and then create and format the destination partition. As before, use fdisk to create the partition and mke2fs or mkreiserfs, etc. to create a blank filesystem. Mount the destination filesystem. 'cd' to the root of the source filesystem. You can then copy the entire filesystem with: find . -xdev | cpio -padm /mnt This recurses the source file system, without dipping into paths that leave that filesystem, and feeds the file listing to cpio. The 'cpio' program then operates in copy-pass mode, preserving permissions and time stamps. This method seems to deal properly with device files. In case your destination partition is not numbered the same as your source, you will have to of course modify /etc/fstab. Other complications may result, but cpio seems to be a popular way to copy a root filesystem. Other tips for