[原]菜鸟Gnu/Hurd使用日记(一)安装Hurd

发表于:2007-07-04来源:作者:点击数: 标签:
菜鸟DebianGnu/Hurd使用日记(一)安装Hurd (所使用的系统是DebianGnu/hurdK8) 破碎细胞 QQ:171767853 cool_tml@yahoo.com.cn 如欲转载,请保持文章的完整性. 最后一次更新:2005年1月2日 前言 1.准备工作 先下载光盘iso文件,我是在debian的网站上下载的iso文件.

菜鸟Debian Gnu/Hurd使用日记(一) 安装Hurd
(所使用的系统是Debian Gnu/hurd K8)
破碎细胞
QQ:171767853
<cool_tml@yahoo.com.cn>
如欲转载,请保持文章的完整性.

最后一次更新:2005年1月2日


前言
    
1.准备工作
    先下载光盘iso文件,我是在debian的网站上下载的iso文件.
    网址:http://eu.hurd.gnuab.org/pub/debian-cd/
            http://na.hurd.gnuab.org/pub/debian-cd/
    然后刻盘.(不知道vmware是否能运行hurd,感兴趣的兄弟可以尝试一下)
    (更新: VMWare Workstation 4.0.5 build-6030可以运行Hurd)
    在安装之前,还要准备一张可以引导系统的grub软盘,因为Debian Gnu/Hurd现在还没有自  
    己的引导程序.

    我是这样做的:
        a)插入一张软盘,在终端里运行
          mkfs.ext2 -b 4096 /dev/fd0
          (不知道为什么,只有用”-b 4096”参数制作的ext2软盘才能在Hurd里挂上去,以方
          便在Hurd下修改里面的数据)  
        b)把制作好软盘挂在系统上
          mount /dev/fd0 /mnt/floppy
        c)在软盘里建立文件夹boot,然后在boot文件夹里建立文件夹grub
          cd /mnt/floppy
          mkdir boot
          cd boot
          mkdir grub
        d)把硬盘里的文件stage1和stage2复制到文件夹grub下
          (以fedora2为例)
          cd /boot/grub
          cp stage1 /mnt/floppy/boot/grub/
          cp stage2 /mnt/floppy/boot/grub/
        e)在软盘grub目录下建立一个文本文件menu.lst(这就是grub的菜单文件)
这里,还有一点需要注意,Hurd的设备命名方式和Linux有所不同,它采用了类似BSD的命名方式.IDE硬盘的名称是hd,第一个IDE硬盘的第一个分区就是:hd0s1;第二个IDE硬盘的第2个分区就是:hd1s2,依此类推.软盘还是fd0.光盘也是hd,例如,我的硬盘是hd0,我的光盘就是hd2(光盘的后面不用加”s*”).

                 我的menu.lst的内容如下:(标记背景为灰色的文字表示处在同一行)
[code:1:9922b058dc]
default 0

timeout 10

title Hurd

kernel (hd0,7)/boot/gnumach.gz root=device:hd0s8

module (hd0,7)/hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} --host-priv-port=${host-port} --device-master-port=${device-port} --exec-server-task=${exec-task} -T typed ${root} $(task-create) $(task-resume)

module (hd0,7)/lib/ld.so.1 /hurd/exec $(exec-task=task-create)

title Hurd (single user)

kernel (hd0,7)/boot/gnumach.gz root=device:hd0s8 -s

module (hd0,7)/hurd/ext2fs.static --multiboot-command-line=${kernel-command-line} --host-priv-port=${host=port} --device-master-port=${device-port} --exec-server-task=${exec-task} -T typed ${root} $(task-create) $(task-resume)

module (hd0,7)/lib/ld.so.1 /hurd/exec $(exec-task=task-create)
[/code:1:9922b058dc]

        f)卸载软盘
          umount /mnt/floppy
        g)在终端里运行
          grub
        h)在grub>提示符下执行
          root (fd0)    回车
          setup (fd0)  回车
    这样,一张grub启动盘,就做好了.  

2.安装系统
    要安装Hurd,你需要有一定的空闲空间,或者一个ext2分区.
    (注意:Hurd现在还不能支持大于2GB的分区,默认的安装的分区是ext2,另外Hurd可以和Linux共用同一个swap分区)    

    a)把Debian Gnu/Hurd K8 CD1放入光驱里,重新启动计算机.
    b)光盘将自动引导,当出现”boot”提示符时,直接按回车.
    c)出现菜单时,选择第一项”Initial Keyboard Configuration”配置键盘.一般选择默认的就可以了.
    d)选择第二项”Partition a Hard Disk”分区设置.  
      我的分区表如下:
[code:1:9922b058dc]
/dev/hda1       Fedora的”/boot”    Bootable
/dev/hda2       Fedora的”/usr”
/dev/hda3       Fedora的”/mydoc”
/dev/hda5       Fedora的”/”
/dev/hda6       Fedora的swap
/dev/hda7       Hurd的swap          256MB
/dev/hda8       Hurd的根目录”/”   1700MB
[/code:1:9922b058dc]
        
      注意:1)如果想要使用Grub在硬盘上来引导系统,grub所在的那个分区必须为bootable.
           2)在设置分区类型的时候,Hurd的swap应该设置为”Linux swap”(82),Hurd的根
             目录应该设置为”Linux Ext2”(83),而不是”GNU Hurd or srv”(63).

      设置好后,就选”write”(将分区表写进硬盘)并输入”yes”,然后”quit”(退出).
    e)下面回到第一级菜单,选择”Initialize a GNU/Hurd Partition”,设置Hurd的根目录.
    f)回到第一级菜单,选择”Install Base System”,安装基本系统,这一步一路回车就可以了.
    g)选择”Reboot”,取出光盘,插入引导软盘.

3.安装/设置软件
    a)系统重起以后,出现软盘的grub引导菜单,选择”Hurd (single uesr)”进入.
    b)这时会出现很多启动信息,你需要留意你机器硬盘,光盘的设备名,这是很有用的.
    c)出现shell提示符后,键入”/native-install”来运行一个初步设置脚本.执行完后,脚本会提示你重起计算机,你reboot就可以了.
    d)第二次引导,依然使用”single user”(单用户模式)进入,再一次执行”/native-install”.这次完成后就重起,并以多用户模式(就是grub启动菜单的第一项)进入.
    f)当出现”login”提示符时,键入”login root”进入系统.
    g)你可以用passwd命令来修改root的密码.但现在首先要做的是:
      1)增加设备名
        我是这样做的:
        cd /dev
        ./MAKEDEV hd0s7  (这是swap分区)
        ./MAKEDEV hd2    (这是光驱)
       2)编辑/etc/fstab
        这是我的fstab文件:
[code:1:9922b058dc]
# <file system> <mount point> <type> <options><dump> <pass>
/dev/hd0s7       none          swap       sw0        0
/dev/hd0s8       /          ext2       rw1        1
[/code:1:9922b058dc]
    h)建立cdrom目录
      mkdir /cdrom
      把光盘放入光驱,并挂载光盘:
      settrans /cdrom /hurd/iso9660fs /dev/hd2
    i)安装基本的软件
      /cdrom/upgrade/install.sh
    j)安装图形界面(XFree86等)
      /cdrom/upgrade/gui.sh

4.设置硬盘引导程序
    如果你原来的硬盘上没有Grub,而你又不想每次都用软盘引导,你可以把软盘上的grub目录以及里面的内容复制到硬盘的/boot目录下.然后把软盘插入软驱,并重新启动,但出现系统选择菜单时,按”c”进入Grub的命令行模式,运行:
    root (hd0,7)        <--括号里的分区就是你硬盘上/boot目录所在的分区,如果你不知道
                           它到底在哪里,你可以执行”find /boot/gnumach.gz”,Grub会             
                           显示出分区来.
    setup (hd0)

ok!这样Debian Gnu/Hurd 就基本设置好了.
尽情享受探索Hurd的快乐吧
在下一篇文章里,我将介绍怎样设置运行XFree86.[/code]

 破碎细胞 回复于:2005-02-18 20:37:17
哎~~~~~~~~~

真是“结庐在人境,而无车马喧”啊~~~~~~~~~~~~~`

 水中风铃 回复于:2005-02-18 20:50:01
长见识了,多谢共享,能不能详细介绍一下HURD,我只找到下面的资料
http://www.gnu.org/software/hurd/hurd.cn.html

 破碎细胞 回复于:2005-02-18 21:19:28
估计国内玩Hurd的不多
好的资料都在国外:
 :D http://hurd.gnufans.org/bin/view/Hurd/WebHome
这个站不错

 speed_fj 回复于:2005-02-18 21:31:28
请问hurd是什么东西?

 水中风铃 回复于:2005-02-18 21:32:05
[quote:7db2f6dcfc="破碎细胞"][/quote:7db2f6dcfc]

嗯,我刚开始学LINUX,HURD还是第一次听说呢!

 破碎细胞 回复于:2005-02-18 21:36:41
[quote:7dbe1206ef="speed_fj"]请问hurd是什么东西?[/quote:7dbe1206ef]
GNU Hurd 是 GNU 工程中取代 Unix 的核心。 Hurd 是一组运行在 Mach 微内核上的服务器,用来实现 Unix 或其他核心(如 Linux)实现了的文件系统、网络协议、及文件访问控制等其他功能。 

目前,Hurd 运行在 IA32 系统上。未来 Hurd 应该,而且可能会被移植到其他硬件系统或微内核上。 

这里有详细的
http://www.gnu.org/software/hurd/hurd.cn.html

 speed_fj 回复于:2005-02-18 21:46:02
哦 编程的 研究内核做实验的 是吗?

 speed_fj 回复于:2005-02-18 21:47:44
不是太懂 内核再应该怎么发展呢?

功能还能加什么阿 无非IO控制 中断控制 进程作业控制 无非就是稳定性能性能上做发展  还有就是带多点驱动 只是这些吗?

我不懂的 想问一下

 破碎细胞 回复于:2005-02-18 21:48:24
[quote:40837clearcase/" target="_blank" >cc994="speed_fj"]哦 编程的 研究内核做实验的 是吗?[/quote:40837cc994]

目前是吧~~~因为还是在开发之中

如果正式版发行了,就可以用广泛的用途了,和Linux或者其他操作系统一样

 破碎细胞 回复于:2005-02-18 21:53:02
[quote:26dc2f54ca="speed_fj"]不是太懂 内核再应该怎么发展呢?

功能还能加什么阿 无非IO控制 中断控制 进程作业控制 无非就是稳定性能性能上做发展  还有就是带多点驱动 只是这些吗?

我不懂的 想问一下[/quote:26dc2f54ca]
hurd使用的内核是Mach(将来可能是L4),属于微内核,
而Linux是巨内核

结构不同。
就灵活性来说,微内核应该要好些吧,但实现起来却要复杂些,而且在资源消耗上可能会比巨内核大些

但总得来说 微内核 是一个新的发展方向,概念要先进一些 :D 
我应该没说错吧

我也是菜鸟一个啊

 speed_fj 回复于:2005-02-18 21:57:05
微内核是不时stable点 越简单越不容易出错

 破碎细胞 回复于:2005-02-18 22:02:00
[quote:4c8036c22d="speed_fj"]微内核是不时stable点 越简单越不容易出错[/quote:4c8036c22d]

理论上是

但微内核只是把一些原本在内核里的功能 外移 了(就是不集中在一个kernel里了)

在进程间的通信上 难度也许还要大些

至于稳定性  不能单纯地看结构吧  还得看代码的设计等等...

 破碎细胞 回复于:2005-02-18 22:08:02
好象误导你了

Gnu Mach是内核
Hurd是一系列server  来执行一些原来由内核来完成的工作

Debian Gnu/Hurd 应该是发行版吧

 speed_fj 回复于:2005-02-18 22:20:31
谢谢 写个内核真那么难吗 我看过一点点linux1.0.x的内核 只是一点部分的代码 (水平一般 看一本讲解书的)

这个内核应该大多都差不多的把 是不时就一些数据类型定义上有点差别 算法应该还都差不多一路的吧  是马 请赐教

 破碎细胞 回复于:2005-02-18 22:27:19
[quote:563211f446="speed_fj"]谢谢 写个内核真那么难吗 我看过一点点linux1.0.x的内核 只是一点部分的代码 (水平一般 看一本讲解书的)

这个内核应该大多都差不多的把 是不时就一些数据类型定义上有点差别 算法应该还都差不多一路的吧  是马 ..........[/quote:563211f446]

算法应该也有差别吧
1.结构的不同,会导致算法的差异
2.开发的人不同,应该不会写出相同的代码来吧

linux的代码我还没看呢,没时间啊,所以不敢乱说
不过Gnu Mach和hurd都是开放原代码的
你可以看看 比较一下 :)

 破碎细胞 回复于:2005-02-18 22:30:27
[quote:9e5b7c679d="speed_fj"]谢谢 写个内核真那么难吗[/quote:9e5b7c679d]

如果很简单的话  那为什么我们国家还没有一个自己的象样的内核?

 speed_fj 回复于:2005-02-18 22:55:21
资料都公开的 我国数学也不错 也改没有技术盲点阿 我国开发不出来 或者不成功 所以我纳闷呀

其实没必要直接开发 LINUX不是给我们很好机会吗

说OS开发难 的确 听说WIN2000开发化了20亿美金 天那 还那么多BUG 虽然功能超强(最佩服的就是不培训也基本会用)

 破碎细胞 回复于:2005-02-19 13:32:08
[quote:6618a6c57e="speed_fj"]资料都公开的 我国数学也不错 也改没有技术盲点阿 我国开发不出来 或者不成功 所以我纳闷呀

其实没必要直接开发 LINUX不是给我们很好机会吗

说OS开发难 的确 听说WIN2000开发化了20亿美金 天那 还那么多BUG 虽..........[/quote:6618a6c57e]

自由软件 最安全 也最不安全

至于windows,完全是牺牲安全性和性能,提高易用性

原文转自:http://www.ltesting.net