Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1309460
  • 博文数量: 268
  • 博客积分: 10698
  • 博客等级: 上将
  • 技术积分: 2867
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-14 22:21
文章分类

全部博文(268)

文章存档

2012年(19)

2011年(13)

2010年(29)

2009年(26)

2008年(99)

2007年(82)

我的朋友

分类: LINUX

2008-09-21 17:09:18

为了方便Linux系统在硬盘上的安装和特殊情况下的系统管理,有时候需要借助于硬盘之外的Linux系统,LiveCD可以刻录在光盘上,小一些的可以装在U盘上。

一、在U盘上建立Linux文件系统
最新版的grub能否识识别U盘上的内核呢,我试了一下,不同的文件系统有的能挂载,有的挂不了,
vfat文件系统,能挂载,但它不属于Linux文件系统。
ext3文件系统,无法挂载(奇怪,不知道为什么)。
reiserfs文件系统,能挂载。

最后,用reiserfs是成功的。

二、U盘上的操作系统的选择
puppy是一个非常小的LiveCD,可用于U盘,我下载了: puppy-4.00-k2.6.21.7-seamonkey.iso,一共才88M,挂载后的内容如下:
# ls
boot.cat  boot.msg  initrd.gz  isolinux.bin  isolinux.cfg  pup_400.sfs  vmlinuz  zdrv_400.sfs
将pup_400.sfs挂载于另一目录,内容如下:
# ls -p
archive/  bin/  dev/  etc/  lib/  mnt/  opt/  proc/  root/  sbin/  tmp/  usr/  var/
不可能全都拷到U盘里,因为我的U盘才128兆,只能有选择地拷贝,放弃/usr,只要其它的:
bin/  dev/  etc/  lib/  mnt/  opt/  proc/  root/  sbin/  tmp/  var/
并mkdir一个boot文件夹,把前面的vmlinuz 和 initrd.gz 放进去。
重新启动电脑,grub中
root (hd2,0)
kernel /boot/vmlinuz root=/dev/hda2
initrd /boot/initrd.gz
boot
因为有两块硬盘的存在,所以U盘被识别为hd2,成功地boot进入之后,有功能比较齐全的shell可用,而这样一个Linux系统只占了48M的空间。
阅读(5671) | 评论(6) | 转发(0) |
给主人留下些什么吧!~~

mystérieux2008-10-15 02:01:36

thanks

chinaunix网友2008-10-15 01:27:38

我大概找到原因了,因为有的bios在启动的时候,不会主动对usb存储进行映射,所以在grub的界面下,grub根本不知道这个usb设备是存储盘u。 在ramdisk中进行init之后,usb硬盘就映射了,所以,在livecd启动后,可以看见这块usb硬盘。这种情况解决的办法是,将内核和initrd.img放到grub可以找到的盘中,然后再chroot到usb盘的root下。你说的livecd的grub的问题,不知道原因,没遇到过。

mystérieux2008-10-13 15:55:37

在笔记本电脑上,与grub有关的奇怪现象我以前就遇到过,比如,一个好好的LiveCD光盘,在正常情况下的台式机中,会正常打开grub菜单,而放到笔记本里启动,根本不出现grub菜单,而是直接出现那种在台式机中按c的grub提示符,想回也回不去,所以说,笔记本中的grub总是有会一些奇怪现象,我无法作出准确地解释,但我猜想,是不是grub在软件编写的时候,没有认真照顾到与笔记本电脑的bios上的设计兼容。

mystérieux2008-10-13 15:43:59

您的问题我解释不了,我装好了的U盘在我的笔记本上也识别不了磁盘,和您是同样的错误提示,只是在台式机上可以。

chinaunix网友2008-10-13 12:27:05

楼主,请问个问题。 我按照你说的方法去做,我用的grub是ubuntu-8.04.1.desktop安装时自带的,电脑是4,5年前的老笔记本,开机后,grub选择新建的启动项,提示错误“the selected disk doesn't exist”,请问这是什么原因?