从一台计算机获取现有Linux安装程序以在另一台计算机上启动

我有一个现有的Dell Precision 690工作站设置,可以双启动Windows XP和CentOS 5.5.这些操作系统安装在两个独立的驱动器上.我在Linux驱动器上有一个grub菜单,它设置为驱动器1并指向驱动器2上的Windows启动信息.

我尝试将Linux驱动器安装到一个新的HP Z800工作站中,看看我是否足够幸运能够启动它,但事实并非如此.它开始启动后立即出现一些错误.

以下是系统显示的内容:

在此消息之后,Red Hat nash版本5.1.19.6开始我得到以下行:

Unable to access resume device (LABEL=SWAP-sda2)
mount: could not find filesystem '/dev/root'
setuproot: moving /dev failed: No such file or directory
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
switchroot: mount failed: No such file or directory
Kernel panic - not syncing: Attempted to kill init!

有什么我可以调整,以使这可能启动?我真的不想在这台机器上重新加载CentOS 5.5和专用软件.

我在这个驱动器上有一个grub菜单设置,这可能是我的问题吗?旧机器中的驱动器设置为Linux作为驱动器1,Windows作为驱动器2,Linux驱动器托管grub菜单允许我引导到Linux或Windows.这可能是一个怎样的问题?

我确实知道如何使用Windows:在机器中安装辅助HDD控制器卡,安装驱动程序,将驱动器连接到旧机器中的控制器并确保它启动,将驱动器和控制器移动到新机器并启动关闭它,加载主板驱动程序(特别是硬盘控制器驱动程序),然后你可以取出控制器卡,将硬盘直接连接到主板,然后你就可以了.同样的事情可能在Linux中完成,但我不确定.如果没有别的办法,这可能是最后的尝试.

最佳答案
如果你到目前为止,这意味着引导加载程序成功加载了内核和initrd / initramfs,但是内核没有找到根设备.所以你应该可以通过在内核命令行上传递root = / dev / sda42之类的东西来启动.

在Grub提示符下,编辑Linux条目,并查找以linux开头的行.在那一行,应该有一个看起来像root = / dev / sda42的参数.将其更改为root = / dev / sdb42,即另一个驱动器.当前的字母可能不是a,并且有效的字母可能不是b,但是如果你有两个驱动器,你可能只需要将sdb交换为sda,反之亦然.

Linux中驱动器号的顺序与BIOS,Grub或Windows中的顺序无关(或至少不直接相关)(取决于驱动程序的加载顺序). (有很多方法可以解决这个问题,但是现在它们对你没有帮助.)

启动时,如果/ etc / fstab中的条目与当前磁盘设备名称不匹配,则可能会出错.如果你无法进入修复控制台,重新启动并(除了root =更改)添加init = / bin / sh直接删除到shell,然后运行

mount /proc
mount -o remount,rw /
vi /etc/fstab    # or whatever your favorite editor is

转载注明原文:从一台计算机获取现有Linux安装程序以在另一台计算机上启动 - 代码日志