服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 通过Linux系统将Windows系统迁移到到新的磁盘上

通过Linux系统将Windows系统迁移到到新的磁盘上

2019-07-02 15:39运维之道北方人 Linux

这篇文章主要介绍了通过Linux系统将Windows系统迁移到到新的磁盘上的方法,类似于硬盘数据备份软件Ghost的做法...well,需要的朋友可以参考下

1. 概述
这篇文章将告诉你如何再 linux 系统下,将 安装好的windows版本 复制到新的磁盘上(新的磁盘大于等于window镜像大小)


2. 使用到的工具
livecd 工具,可以是CD 也可以是USB启动的 ,需要有的工具 dd, fdisk, and ntfsresize.
此例子中,使用如下假设:
/dev/sdc (新硬盘)
/dev/sdb (老硬盘,安装好的window版本数据在 /dev/sdb1 分区中)
= 格式化新盘(/dev/sdc) =
使用root 用户,进行如下分区操作
 

复制代码
代码如下:

[root@centos6 ~]# fdisk /dev/sdc

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2088, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2088, default 2088): 
Using default value 2088

Command (m for help): p

Disk /dev/sdc: 17.2 GB, 17179869184 bytes
255 heads, 63 sectors/track, 2088 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xa1c3a1c3

Device Boot Start End Blocks Id System
/dev/sdc1 1 2088 16771828+ 83 Linux

在完成之前,我们必须设置启动标志和分区系统ID,分区系统ID必须是WINDOWS的,ID值为 7.

复制代码
代码如下:

Command (m for help): A
Partition number (1-4): 1

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 7
Changed system type of partition 1 to 7 (HPFS/NTFS)

Command (m for help): p

Disk /dev/sdc: 17.2 GB, 17179869184 bytes
255 heads, 63 sectors/track, 2088 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xa1c3a1c3

Device Boot Start End Blocks Id System
/dev/sdc1 * 1 2088 16771828+ 7 HPFS/NTFS

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

= 复制MBR =
为了让新盘能够引导, 我们必须从Master Boot Record (MBR) 复制引导代码到新的磁盘上
MBR 在磁盘的第一个扇区,由3部分组成:

复制代码
代码如下:

Boot Code (446 bytes)
Partition Table (64 bytes)
Boot Code Signature = 55aa (2 bytes)

我们只需要复制引导代码,起始的 446 bytes. 使用dd工具来复制:

复制代码
代码如下:

# dd if=/dev/sdb of=/dev/sdc bs=446 count=1
1+0 records in
1+0 records out
446 bytes transferred in 0.026312 seconds (16950 bytes/sec)

= 复制分区 =
下一步任务就是将文件系统从一个盘复制到另一个盘上.在这里我们使用 ntfsclone 工具来复制 NTFS 文件系统

复制代码
代码如下:

[root@centos6 ~]# ntfsclone --overwrite /dev/sdc1 /dev/sdb1</p> <p> ntfsclone v2013.1.13 (libntfs-3g)
NTFS volume version: 3.1
Cluster size : 4096 bytes
Current volume size: 10725732352 bytes (10726 MB)
Current device size: 10725732864 bytes (10726 MB)
Scanning volume ...
100.00 percent completed
Accounting clusters ...
Space in use : 7565 MB (70.5%) 
Cloning NTFS ...
100.00 percent completed
Syncing ...

如果在源盘上有坏的扇区,则需要添加 --rescue 选项

复制代码
代码如下:

# ntfsclone --rescue --overwrite /dev/sdc1 /dev/sdb1

注意: 源盘 是 最后一个参数(/dev/sdb1)

 


3. 改变分区大小
在新盘比源盘大的情况下,我们需要改变分区大小来使用所有空间,这里我们使用 ntfsresize 命令
 

复制代码
代码如下:

[root@centos6 ~]# ntfsresize /dev/sdc1</p> <p> ntfsresize v2013.1.13 (libntfs-3g)
Device name : /dev/sdc1
NTFS volume version: 3.1
Cluster size : 4096 bytes
Current volume size: 10725732864 bytes (10726 MB)
Current device size: 17174352384 bytes (17175 MB)
New volume size : 17174348288 bytes (17175 MB)
Checking filesystem consistency ...
100.00 percent completed
Accounting clusters ...
Space in use : 7565 MB (70.5%)
Collecting resizing constraints ...
WARNING: Every sanity check passed and only the dangerous operations left.
Make sure that important data has been backed up! Power outage or computer
crash may result major data loss!
Are you sure you want to proceed (y/[n])? y
Schedule chkdsk for NTFS consistency check at Windows boot time ...
Resetting $LogFile ... (this might take a while)
Updating $BadClust file ...
Updating $Bitmap file ...
Updating Boot record ...
Syncing device ...
Successfully resized NTFS on device '/dev/sdc1'.

 


4. 使用新盘重新启动系统
重新启动后,windows 会自动检查文件系统如下(因为分区大小有所变化),检查完成后自动重起就能进入windows系统了 
通过Linux系统将Windows系统迁移到到新的磁盘上


5. 总结
当然这种方式的拷贝是在同一台服务器上操作的(驱动无变化),如果将一个干净的windows裸系统通过这种方式安装到不同型号的服务器上时, 就会出现驱动问题,如何解决,请看下回分解!

延伸 · 阅读

精彩推荐
  • Linuxlinux中rmdir命令使用详解(删除空目录)

    linux中rmdir命令使用详解(删除空目录)

    今天学习一下linux中命令: rmdir命令。rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的 ...

    linux命令大全5372019-11-19
  • Linux详解Linux系统下PXE服务器的部署过程

    详解Linux系统下PXE服务器的部署过程

    这篇文章主要介绍了Linux系统下PXE服务器的部署过程,包括对PXE的API架构作了一个基本的简介,需要的朋友可以参考下...

    运维之道9812019-07-04
  • LinuxLinux常用的日志文件和常用命令

    Linux常用的日志文件和常用命令

    成功地管理任何系统的关键之一,是要知道系统中正在发生什么事。 Linux 中提供了异常日志,并且日志的细节是可配置的。Linux 日志都以明文形式存储,所...

    Linux教程网2632020-04-18
  • LinuxLinux上设置用户通过SFTP访问目录的权限的方法

    Linux上设置用户通过SFTP访问目录的权限的方法

    这篇文章主要介绍了Linux上设置用户通过SFTP访问目录的权限的方法,SFTP可以理解为使用SSH协议进行FTP传输的协议,因而同时要对OpenSSH进行相关设置,需要的朋...

    OSChina10022019-06-19
  • Linux手把手教您在 Linux 上使用 GPG 加解密文件

    手把手教您在 Linux 上使用 GPG 加解密文件

    在本教程中,我将告诉你如何用 GPG 加密和解密文件。这是一个简单的教程,你可以在你的 Linux 系统上尝试所有的练习。这将帮助你练习 GPG 命令,并在你...

    Linux中国6962021-12-15
  • Linux确保Linux系统安全的前提条件 漏洞防护

    确保Linux系统安全的前提条件 漏洞防护

    Linux 作为开放式的操作系统受到很多程序员的喜爱,很多高级程序员都喜欢编写Linux操作系统的相关软件。这使得Linux操作系统有着丰富的软件支持,还有无...

    Linux之家2642020-04-11
  • LinuxLinux中环境变量配置的步骤详解

    Linux中环境变量配置的步骤详解

    Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的...

    Myths7882022-02-10
  • LinuxLinux lnmp下无法使用mail发邮件的两种解决方法

    Linux lnmp下无法使用mail发邮件的两种解决方法

    在配置了lnmp环境后,出现了mail函数不能发送邮件的问题,其实有两种方法,一是使用sendmail组件,而是使用postfix。下面为大家一一介绍下 ...

    Linux之家4042019-09-17