创建正在运行的Linux系统的映像文件


10

据我了解,创建Linux系统的映像可以精确复制操作系统以及所有用户文件/配置/程序等。

我想做的是创建工作PC的映像并将其在家中安装在桌面上。有人可以简要解释一下创建和安装Linux系统映像的过程吗?

家用操作系统:Windows。想要:可以在虚拟机(VMPlayer或VirtualBox)中执行或直接在我的家用PC上启动的映像文件。我尝试过clonesys,但希望使用其他方法。


系统是如何设置的,您可以使用哪些成像工具?如果您使用的是lvm,则超级简单,并且可以在实时系统上运行。其他一些工具需要脱机映像。
RobotHumans 2010年

您需要在此处提供更多详细信息,以获得有用的答案。您尝试过的“程序”是什么?它产生了什么图像文件(至少它们的名称和大小)?您是要在家中,双引导还是在VM中运行Linux映像来替换当前的OS?无论如何,您当前在家中使用的操作系统是什么?您需要在操作系统实际运行时制作映像还是将其停止一段时间是可以接受的?(请注意:将更多详细信息编辑到您的问题中,而不是作为评论,否则其他人添加了更多评论后,信息最终可能会隐藏起来)
David Spillett 2010年

Answers:


3

你可以尝试的东西。

准备现场CD(与哪一个无关)。外部存储设备必须足够大(与Work HD相同)以保存图像。

将实时CD放入您的工作计算机并启动它。挂载外部存储(如果您愿意,甚至挂载网络)

用于dd在工作计算机上克隆硬盘并将其作为映像存储在存储中

关闭工作电脑

在家用笔记本电脑上执行相同的完全相同的方法,但是除了克隆硬盘驱动器之外,您将图像放置在硬盘驱动器上实际上是必须反转if=of=命令

除非您的家庭和工作单位的硬件相同,否则您可能会立即遇到一些硬件兼容性问题。但这都是可以解决的:)

请享用。


OP说他想创建一个正在运行的系统的映像。实时CD表示要克隆的系统将无法运行。
Andrew Ensley

@andrew,在略读标题之前阅读实际问题如何?我的答案很重要。
g19fanatic 2011年

无意冒犯。我确实阅读了整个问题。标题和问题共同表明OP希望在系统运行时创建映像。因此,他也参考了clonesys。
Andrew Ensley

1
OP没有提到需要对正在运行的系统进行映像。重新阅读他的问题,我认为这意味着他有一个“正在运行”的linux系统,并希望将其克隆(在标题中运行可能表示“正在运行”)。他对clonesys的提及是任意的,并且会导致不熟悉。您读它时就像他想要一个正在运行的克隆一样(如果不先在VM中运行它,就不可能...)。它对我来说根本不是那样。他问的是可以用我的方法(和其他提到的方法)实现的。
g19fanatic 2011年

2

http://www.linux-live.org/为您提供了一个非常简单的操作方法:

Linux Live Kit是一组Shell脚本,可让您从已经安装的Linux发行版中创建自己的Live Linux。您创建的Live系统将可以从CD-ROM或磁盘设备启动,例如USB闪存驱动器,USB笔驱动器,连接到USB端口的相机等。人们也使用Linux Live Kit从iPod引导Linux。


+1:我认为这是一个很好的解决方案,但是由于它是一个很好的解决方案,因此可以从很多风味信息中受益。
杀手主义者

1

您可以使用partimage创建实时图像。但是我认为很难获得可以实时传输到另一台PC上的实时图像。

当您可以关闭工作电脑时,我建议您使用带partimage的实时CD,然后将图像创建到USB记忆棒,然后将其重写到家用电脑上。

或者,如果无法关闭计算机,则可以使用转储(http://linux.about.com/od/commands/l/blcmdl8_dump.htm)到文件或通过网络(ssh)。


0

您可以使用Clonezilla(Live CD)轻松克隆操作系统,但只知道目标驱动器必须与原始驱动器一样大或更大。这些步骤将向您展示如何将磁盘克隆到另一个磁盘。

注意-备份您的数据


1
OP说他想创建一个正在运行的系统的映像。实时CD表示要克隆的系统将无法运行。
Andrew Ensley

0

这是我刚刚完成的操作:

制备

Windows 10桌面

  • 安装VirtualBox

以下步骤是提供一种复制磁盘映像的方法。我没有足够的外部存储设备来容纳笔记本电脑的磁盘映像,因此我通过SSH挂载了Windows计算机。还有其他方法可以执行此操作,但这对我而言最简单。

  • 启用WSL并在出现提示时重新启动
  • 从Windows应用商店安装Ubuntu
  • 从开始菜单启动Ubuntu
  • 运行sudo apt install openssh-server安装sshd
  • 运行sudo nano /etc/ssh/sshd_config以编辑sshd配置
  • 更改PasswordAuthentication noPasswordAuthentication yes,然后按Ctrl+ xyenter保存
  • sudo /etc/init.d/ssh restart

Windows防火墙对话框现在应该会弹出,单击接受以允许传入连接。

Linux笔记本电脑

运行sudo apt install sshfs virtualbox为您提供sshfsvboxmanage命令。

现在是测试您可以与Windows计算机建立SSH连接的好时机

创建启动映像

如果在下一节中,您将创建整个磁盘的映像,而不只是Linux分区,那么您可能不需要这样做。

我想节省空间,所以只能使用我的Linux根分区,但是它本身不能启动,因此我创建了一个可启动的ISO映像:

Linux笔记本电脑

  • 安装grub-mkrescue所需的软件包: sudo apt install grub-pc-bin xorriso
  • 创建一个目录来存放可引导文件: mkdir -p efibootiso/boot/grub
  • 复制Grub EFI引导程序: cp /usr/lib/grub/x86_64-efi/* efibootiso/boot/grub/
  • 复制笔记本电脑的Grub配置: cp /boot/grub/grub.cfg efibootiso/boot/grub
  • 制作图像: grub-mkrescue -o boot.iso efibootiso
  • 将其复制到Windows计算机: scp boot.iso username@windowsten:/mnt/d/VMs/WorkLaptop/

创建磁盘映像

Linux笔记本电脑

  • 重新启动并选择高级选项,然后从引导加载程序中恢复模式
  • 从恢复菜单中选择网络以启用网络
  • 然后选择根控制台选项,然后按Enter
  • 运行mount检查您的根分区(我的是/dev/sda8
  • 创建一个临时目录来挂载Windows计算机,例如: mkdir /run/windowsten
  • 挂载Windows计算机,例如: sshfs username@windowsten:/ /run/windowsten
  • 将目录更改为要保存磁盘映像的位置,例如: cd /run/windowsten/mnt/d/VMs/WorkLaptop

这是诀窍,如果您mount -o remount,ro /现在运行,则将被告知正在使用中,因此请使用魔术的sysrq键:SysRq+ s强制同步,然后SysRq+ u强制重新挂载为只读。(SysRq在我的笔记本电脑上是Alt Gr+ Print Screen

  • 现在使用以下命令制作VDI文件 vboxmanage convertfromraw /dev/sda8 worklaptop.vdi

这将花费很长时间。两台使用802.11n wifi的计算机时,我每小时都能获得约10GB的数据。下次我将使用有线连接。

当它最终完成时,您将拥有笔记本电脑的Linux分区的磁盘映像。

Windows 10桌面

  • 启动VirtualBox
  • 点击新建
    • 单击专家模式
    • 给你的虚拟机起个名字
    • 选择操作系统类型和版本(例如Linux,Ubuntu(64位)
    • 给它足够的内存
    • 选择“使用现有的虚拟硬盘文件”单选按钮
    • 点击黄色文件夹图标
    • 浏览并选择上一步中的VDI文件
    • 点击创建
  • 选择新的虚拟机
  • 点击设置
    • 点击存储
    • 选择光盘驱动器
    • 单击光盘图标,然后选择“选择虚拟光盘文件”
    • 浏览并选择boot.iso映像
  • 点击系统
    • 验证光驱在启动顺序中是否位于硬盘上方
    • 选中启用EFI
    • 点击确定

现在,您应该能够启动虚拟机了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.