最小化硬盘驱动器故障和数据丢失/Popdisk
外观
使用 knoppix 从/到 windows 共享备份和恢复 NTFS 分区
Given: Windows share is at \\192.168.2.3\y The NTFS partitions to backup is the first partition on the primary IDE drive (hda1) BACKUP 1. Boot from knoppix CD. 2. Bring up a root terminal (click on little penguin at bottom left - select “root shell”) and create mount point: mkdir x 3. Mount windows share: mount -t smbfs //192.168.2.3/y x or with a password: mount -t smbfs -o username=xxxx,password=xxxx //192.168.2.3/y x 4. Move to mounted destination drive: cd x 5. Create partition backup: ntfsclone -s /dev/hda1 -o - | gzip | split -b 650m - backup.hda1.gz 6. Back up boot sector: dd bs=512 count=1 if=/dev/hda of=bsback.img 7. Back up partition info: sfdisk -d /dev/hda >partitions.txt RESTORE 1. Boot from knoppix CD. 2. Bring up a root terminal (click on little penguin at bottom left - select “root shell”) and create mount point: mkdir x 3. Mount windows share: mount -t smbfs //192.168.2.3/y x or with a password: mount -t smbfs -o username=scott,password=xxxx //192.168.2.3/y x 4. Move to mounted destination drive: cd x 5. Restore boot sector: dd count=1 bs=446 bs=if=bsback.img of=/dev/hda Use "bs=446" to exclude the partition table from being written to disk, otherwise 512 will restore that too, but if the disk size is different, the you probably don't want the partition numbers restored. You can manually restore the table from the partitions.txt file info created in step 7 above. Another option, if a backup was not available, would be this command: install-mbr /dev/hda or from a dos boot disk: fdisk /mbr 6. Restore partition: cat backup.hda1.gz* | gunzip -c backup.hda1.gz |ntfsclone -r -O /dev/hda1 -
在进行备份之前,可以使用要备份的 PC 的主机名作为文件夹名准备一个文件夹。备份脚本应该被复制到文件夹中,并根据要备份的分区进行定制。然后,要创建备份,从 knoppix 挂载共享,用户移动到目录并执行脚本。备份完成。
然后,应将恢复脚本复制到目录中,并根据分区进行定制(如备份脚本)。在进行备份后,可以删除备份脚本,或将其移动到目录中的新文件夹以供参考。要恢复,相同的挂载共享 - 导航到文件夹 - 然后执行恢复脚本的过程将完成恢复。
sda2(ntfs 分区)的备份
ntfsclone -s /dev/sda2 -o - | gzip | split -b 2000m - sda2.gz dd bs=512 count=1 if=/dev/sda of=bsback.img sfdisk -d /dev/sda >partitions_sfdisk.txt fdisk -l >partitions_fdisk.txt
sda2(ntfs 分区,磁盘必须与原始磁盘大小相同)的恢复
dd bs=512 count=1 if=bsback.img of=/dev/sda sfdisk /dev/sda < partitions_sfdisk.txt cat sda2.gz* | gunzip -c | ntfsclone -r -O /dev/sda2 -
Linux 分区的备份
partimage -z1 -c -d -o -b /dev/sda1 sda1.partimage.img partimage -z1 -c -d -o -b /dev/sda2 sda2.partimage.img partimage -z1 -c -d -o -b /dev/sda4 sda4.partimage.img dd bs=512 count=1 if=/dev/sda of=bsback.img sfdisk -d /dev/sda >partitions_sfdisk.txt fdisk -l >partitions_fdisk.txt
Linux 分区的恢复(还重新创建交换分区 sda3)
dd bs=512 count=1 if=bsback.img of=/dev/sda sfdisk /dev/sda < partitions_sfdisk.txt partimage -b restore /dev/sda1 sda1.partimg.img.000 partimage -b restore /dev/sda2 sda2.partimg.img.000 mkswap /dev/sda3 partimage -b restore /dev/sda4 sda4.partimg.img.000
注意:FAT32 和其他分区类型也可以使用 partimage 非常高效地备份。NTFS 是 partimage 还没有很好地支持的一种分区类型(AFAIK),因此上面使用 ntfsclone。
- 只能恢复到相同大小的磁盘,因为使用 dd 和 sfdisk 方法恢复主引导记录和分区。有一些方法可以克服此限制,但我还没有测试和微调它们。
- 恢复完整的 Linux 系统时,可能需要调整 grub 配置,以便按数字而不是按名称指向分区,而现在许多较新的 Linux 发行版往往这样做。
- 这些脚本可以在除 Windows 共享之外的其他目标类型上运行。这就是使用 knoppix 类型引导磁盘的优点。这里可能有一些关于挂载文件系统的说明。实时 Linux CD 至少可以挂载以下文件系统... 以便将备份发送到
- 本地分区(NTFS、FAT32、EXT2、EXT3 是主要的)
- USB 驱动器
- NFS 共享
- 希望创建一个脚本生成器,它检查本地磁盘并交互式地创建一个备份和恢复脚本以匹配。这将很有趣,而且可能非常有用 :)
- 创建一些脚本以备份到本地 CD/DVD 驱动器,并使它们可启动。
- 创建一个简化的、快速启动的实时 Linux CD,它只包含磁盘映像工具
克隆后重置坏扇区列表
当您将分区从带有坏扇区的磁盘克隆到新磁盘时,Windows 仍然在新磁盘上报告坏扇区。这是因为,根据设计,ntfsclone 复制所有内容,包括坏扇区列表。
虽然这与 ntfsclone 严格来说没有关系,但有些人可能会使用以下过程在克隆后重置坏扇区列表
- 备份分区中的重要数据,以防万一
- 使用 ntfsinfo 使用 ntfsinfo -i 8 <分区> 找出 $Badclus 中 '$Bad' 属性的大小。它将是“Dumping attribute $DATA (0×80)”中的“Allocated size”值(将有两个 0×80 属性。只有一个具有“Allocated size”行)。
- 使用 ntfstruncate <分区> 8 0x80 '$Bad' 0 将 $Bad 的属性长度设置为零。
- 使用 ntfstruncate <分区> 8 0x80 '$Bad' <ntfs_size> 将 $Bad 的属性长度重新设置为步骤 2 中记录的正确值。
- 启动进入 Windows 并运行 chkdsk。它将找到错误并应予以修复。
除非您确定坏扇区只是错误,否则建议在执行此操作后使用硬盘制造商的工具或 chkdsk /r 执行完整的面扫描。本段文字从http://www.linux-ntfs.org/doku.php?id=ntfsclone复制