打印

U盘上的linux换到另一台机器上需要注意哪些问题

U盘上的linux换到另一台机器上需要注意哪些问题

我的U盘上装了个Debian6,能够在安装时用的那台机器(下文称为机器1)上启动。现在要换到另一台机器(下文称为机器2)上启动U盘上的Debian6,grub2需要怎么改配置才能在机器2上启动呢?

情况说明:
1、grub2装在U盘上,两台机器上的硬盘上都没有grub2;
2、grub2下,机器1的硬盘是这样的:hd0为硬盘(上面装了Win系列的系统),hd1为U盘
3、grub2下,机器2的硬盘是这样的:hd0为U盘,hd0为硬盘(上面装了Win系列的系统)
4、grub2的目前配置如下:
insmod part_msdos
insmod ext2
set root='(hd1,msdos1)'
search --no-floppy --fs-uuid --set 178c8e29-688e-480f-b396-45e37f189d74
echo 'Loading Linux 2.6.32-5-amd64 ...'
linux /boot/vmlinuz-2.6.32-5-amd64 root=UUID=178c8e29-688e-480f-b396-45e37f189d74 ro quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-5-amd64

我的疑问是:
1、initrd.img-2.6.32-5-amd64是不是跟硬件(内存)有关呢?如果跟硬件有关,那我从机器1(4G内存)换到机器2(1G内存)应该就不能启动吧?如果跟硬件无关,那我现在的机器不知道为什么就是启不动,总是显示一个光标在左上角闪烁的界面就不动了

希望哪位能够解答我上面的疑问,谢谢!!!

[ 本帖最后由 zz_6_3 于 2013-5-15 11:30 编辑 ]

TOP


1、initrd 跟硬件有关的,里面方的都是驱动。但核内存容量有关的,貌似只有老 MIPS 的服务器才有这个问题。initrd 现在都是 cpio 打包的,这个文件有多大,他就占用多大的内存,所以,如果你的 initrd 有 1G ,在 1G 以下的计算机上是不能读入的。不过 initrd 具体有多大的硬限制我也不知道。
2、UUID 是和分区挂钩的,你的 U  盘插在一个机器上,和插在另一个机器上的 UUID 是一样的。这个 UUID 是写在分区描述区上的,由格式化程序生成,不是 GRUB 生成的,也和除了这个分区以外的硬件无关。不是即时生成的。

如果这个 U 盘,不能在其他的计算机上使用,那就意味着,那台装这个 debian 的计算机上面被写入了数据。
如果这样的话,请问,你在那台计算机上面写入了什么数据?
比如 GRUB ?你没写。
比如某个挂载点?我想你肯定也没写。
那还有什么?
SWAP 分区么?这个倒是有可能。

唯一一个需要主意的是,udev 识别硬件和 ID 有关,比如网卡。
还有 fstab 或者其他存储设备如果设置了那台机器特有的位置,也会开机挂载失败。

TOP

回复 2# jiangtao9999 的帖子

SWAP我也是放在U盘上的

目前还没有启动udev吧?直接显示一个光标在左上角闪烁的界面就不动了。如果是启动成功了,应该还会有一些其它信息打印在屏幕上

initrd的这个文件只有2.3M

[ 本帖最后由 zz_6_3 于 2013-5-15 11:48 编辑 ]

TOP

奇怪,我的这个U盘放到虚拟机(内存1G)下面也能启动,但在那台机子上就是启不动。这至少说明initrd文件的大小不是问题了吧?

TOP

不能启动要看到底是什么地方导致的不能启动……

linux 的启动只有在老的 MIPS 服务器上面才有内存大小和 initrd 的这个问题。

TOP

不是MIPS服务器,是IBM X60S的本

TOP

说了半天,你连到底怎么回事都说不清楚。

TOP

引用:
原帖由 jiangtao9999 于 2013-5-15 15:16 发表
说了半天,你连到底怎么回事都说不清楚。
就是说:
1、U盘上有一个debian,安装时用的机器是DELL n5010,而且n5010的硬盘上只有ntfs分区,在n5010上能启动;
2、放在VMware的虚拟机上也能启动,虚拟机上原本装着centos,所以有swap分区;
3、放在IBS X60S上启不动,而且连linux启动信息都看不到,IBM X60S的硬盘上只有一个FAT32分区和3个NTFS分区,没有SWAP分区。

[ 本帖最后由 zz_6_3 于 2013-5-15 15:44 编辑 ]

TOP

连 Linux 启动信息都看不到,很可能连 GRUB 都启动失败了。

TOP

刚用Grub4Dos启动,出现这样的提示:
This kernel requires an x86-64 CPU, but only detected an i686 CPU.
Unable to boot - please use a kernel approperiate for you CPU.

硬件的事不太清楚,是不是因为我的这个Debian是64位的,难道要装32位的才行?

TOP

引用:
原帖由 jiangtao9999 于 2013-5-15 15:50 发表
连 Linux 启动信息都看不到,很可能连 GRUB 都启动失败了。
GRUB2已经进去了,我还把里面的配置改了一下。不过GRUB2引导的时候,没有给出任何提示。Grub4Dos引导的时候还给了点提示出来才不动的。

TOP

TOP

这种事情我也遇到过了,se 那个 64 位系统我就没办法安装到硬盘,U盘上可以工作但到了硬盘就只有闪键盘灯的份了。
initrd.img 和硬盘有关,而且需要对 fstab 进行正确设置后再进行安装,如果开机都进不了恐怕和这个无关了,内核是否有毛病。

[ 本帖最后由 haulm 于 2013-5-16 21:50 编辑 ]
http://haulm.clanmark.com
自古多情空余恨,几人独潇洒。
问君相伴何所思,唯叹红叶飞。
凭栏窗外一皓月,冷风抚面,寒星如冰。
回想前事独伤感,难分难离,倒是山峦草芥,依旧青。

TOP

楼上别添乱,楼主这是连内核都用错了导致都起不起来,你那个不过是找不到正确的 root 分区而导致 init 进程启动失败。
你们这是两个不同的启动阶段的问题。没有可比性。

TOP

呵呵,确实是内核用错了。32位的可以启动,不过AR5212这个无线网卡有点麻烦,debian7上连驱动都装不上,老说找不到KERNELPATH,已经装过linux-heads了

TOP