LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2616|回复: 12

使用jhalf-2.3.1创建LFS完整过程

[复制链接]
发表于 2008-7-30 22:58:19 | 显示全部楼层 |阅读模式
目前网上关于用jhalfs-2.3.1建立LFS的文章相当罕见。。。但俺只有两张livecd 分别是:lfslivecd-x86-6.3-r2160.iso和  lfslivecd-x86-6.3-r2145.iso  ,那时下载时随便找个新版本就下载了,后来才发现,天啊,文档缺啊,这两个是新版本呢。。。幸好找到了  LFS-BOOK-6.3-rc1-HTML文档和飞豹大侠的《 手把手教你如何建立自己的Linux系统 第二版》。。。前天手动完成了第一个mylinux,哈哈,高兴,好像镜镜姐姐说的:高兴得在被窝里也偷笑。。。
但想要是用jhalfs-2.3.1,怎么做呢,于是漫开了探索的步伐。。。(建议初学者不要用这种方法)
下面是详细过程,好像手把手那么详细了,不用急。。开始吧
准备好lfslivecd-x86-6.3-r2160.iso 从vmware下启动,提示:Number of processors可以选two(若你想快点),内存呢,四五百M分得出吧,,选LIS logic(我选这个,不知可以选BUS logic?可以试试,告诉我哦。。o(∩_∩)o...),我用IDE,听说选scsi也可以,但配置内核时要记得选支持SCSI的选项哦,具体后面再说。。)
1、进入可以一直回车直到命令行出现
2、设置密码(执行jhalfs前最好设置一下密码)
       passwd root
      passwd jhalfs
3分区:
命令cfdisk /dev/hda
        看到什么了呢。。
分吧,我分为hda1:6000(/)和hda2:2000(swap)
mkswap /dev/hda2    格式化swap
mke2fs /dev/hda1    格式化hda1使用格式是ext3
swapon /dev/hda2    使用swap分区
  export LFS=/mnt/lfs
mkdir –pv $LFS
mount /dev/hda1 $LFS    把hda1加到到mnt目录下
mkdir –pv $LFS (lfs必须在jhalfs设置时和这里保持一致)
chmod -v a+wt /mnt/lfs
chown -v jhalfs /mnt/lfs (这个很重要否则jhalfs提示没有写权限)

$LFS/tools/不用创建,jhalfs会自动创建
注意也不用创建lfs帐户了,jhalfs会处理
4、转到jhalfs用户
       # su jhalfs
5、转到jhalfs用户下的jhalfs
       $ cd
$ cd jhalfs-2.3.1  
6、修改编译优化参数(可选)
改O3pipe_march文件
$ vi /home/jhalfs/jhalfs-2.1/optimize/opt_config.d/O3pipe_march
以下是O3pipe_march的内容:
CFLAGS_O3pipe_march=$CFLAGS_O3pipe" -march=pentium4"改成你使用的CPU类型     如我的是amd的则(athlon-xp)
CXXFLAGS_O3pipe_march=$CFLAGS_O3pipe"  -march=pentium4"同上
LDFLAGS_O3pipe_march=$LDFLAGS_O3pipe
OTHER_CFLAGS_O3pipe_march=$CFLAGS_O3pipe" -march=pentium4"同上
OTHER_CXXFLAGS_O3pipe_march=$CXXFLAGS_O3pipe" -march=pentium4"同上
OTHER_LDFLAGS_O3pipe_march=$LDFLAGS_O3pipe
(唐师父说:按esc键,接着输入冒号:,在冒号后面输入wq,回车退去。)

7、然后开始执行 make或者time make  (。。你的眼睛是否在转呢。。不是贼溜溜的,是雪亮的。。哈哈o(∩_∩)o...)

出现以下菜单(注红线标注的地方是值得注意的地方,其他地方默认设置都可以了)
--- BOOK Settings  --->                                                        
Use BOOK (Linux From Scratch)  --->选择要编译的类型        
(X) Linux From Scratch要编译LFS选择这个                                                                  
( ) Cross-Compiled Linux From Scratch这个是CLFS                                                   
( ) Cross-Compiled Linux From Scratch (Sysroot method)也是CLFS不过还在开发                                   
( ) Cross-Compiled Linux From Scratch (Embedded Systems)貌似嵌入系统的CLFS                                 
( ) Hardened Linux From Scratch  HLFS这个是用在安全方面的                                                             ( ) Beyond Linux From Scratch    BLFS这个大家都知道                                                        

     Release (Working Copy)  --->     使用哪个版本的BOOK
( ) SVN                        最新的BOO,开发中的                                          
(X) Working Copy               稳定版,也是光盘上带的                                          
( ) Branch or stable book      分枝??                                         
(/usr/share/LFS-BOOK-6.2-XML) Loc of working copy (mandatory)选择书的位置,默认的主可以                                    

         [ ] Add custom tool support                                                                       

         [ ] Add blfs-tool support                                                                        

   --- General Settings  --->常规设置

         [ ] Change the default user/group for this build     建立LFS的用户和组,可以不选                                 

         (/mnt/build_dir) Build Directory 建立的LFS位置,自己按需要改 (这里设置/mnt/lfs)                                 

         
  • Retrieve source files                            源的位置                                 

             (/lfs-sources) Package Archive Directory             别改,默认就可以                                 

             (http://ftp.lfs-matrix.net/) FTP mirror              如果需要下载,使用这个地址下                                 

            
  •    Always retrieve kernel package (see help)                                       

            
  • Run the makefile                                 退出菜单后直接make                                 

            [ ] Rebuild files                                                                     

    --- Build Settings  --->         
  • Run testsuites  运行测试,默认是选上的,建议不要取消                                                                                 

            Tests level (Only final system Glibc, GCC and Binutils testsuites)  --->  可以选择测试的内容默认的就行了                     

            Flavour (Don't stop on test suite failures)  --->                                                

           [ ] Use a custom fstab file             使用fstab文件,需要指定fstab文件位置                                                              

           [ ] Build the kernel       要不要自动编译内核,需要指定内核配置文件的位置,一般没有设定好的配置文件不要选择此项,jhalfs执行完毕后自己编译内核                                                            

          
  • Strip Installed Binaries/Libraries  好像是自动清理调试代码                                                              

          
  • Install vim-lang package            vim的语言支持补丁,建议加上                                                              

           (GMT) TimeZone                         时区  我的是(Asia/Shanghai)                                                            

           ($LANG) Language                       语言设置,你在使用光盘启动的时候选择的语言就是你$LANG的内容    镜镜姐姐推荐en_US.UTF8

           Groff page size (letter)  --->   

        --- Advanced Features  --->高级设置

          
  • Create SBU and disk usage report                                                            

           [ ] Run comparison analysis on final stage                                                      

          
  • Use optimization (see help)              使用优化参数                                                

               Optimization level  (Final system only)  --->全部默认就行了                                             

       --- Internal Settings (WARNING: for jhalfs developers only)  --->                           

          [ ] Rebuild the Makefile (see help)                                                   

              ---                                                                                 Load an Alternate Configuration File                                                   

          Save Configuration to an Alternate File                                                

    完成后退出程序开始配置

    余下的过程都是自动化的,耐心等待完成即可,一般不会出现错误!

    去休息一下吧,唐师父说,andy 那时在唱《布拉格广场》,之后他也跟着唱起来了:
    A a fu shou a a fu shou yap so so sory so so so …还跳着舞旋转。。。o(∩_∩)o…

    开始编译了,我在VM上干的,一点开始,到六点多就收工了

    执行完毕后会看到以下信息

    To be able to boot your new system you need to follow the next steps:

    - Enter to the chroot using the command found in the section

       - Entering the Chroot Environment - except if building CLFS with METHOO=boot.

    - Set a password for the root user
    。。。。。。。。
    If you are an experienced LFS user, several of those steps can be skipped or done in
    a different way.  But then, that is something that you already know and there is no
    need to discuss it here.
    Have a nice day :-)
    至此,你的LFS半成品就可新鲜出炉了。我们还得进行最后的收尾工作!

    下面的过程就很重要了,一般在网上也找不到文档,由于jhalfs是自动化过程,所以执行完毕后也不知道到哪一步了,网上说直接执行到第7章了其实也不全面,jhalfs除了内核没有编译(如果你有配置文件也可以选择让jhalfs执行),bootstrip的安装也完成了,剩下的工作就是配置、编译内核、设置grub,如果这个过程没有问题就大功告成了!我的军队,前进。。。哈哈。。
    1、  Jhalfs执行完毕后处于jhalfs用户的状态,执行一下代码:exit     
    是不是回到root了呢。。
    2   1) mount --bind /dev /mnt/lfs/dev     (这个非常重要,关系到grub能不能找到设备,这个要在进入chroot环境之前做
    2)加载必要的文件系统
    mount -vt proc proc $LFS/proc
    mount -vt sysfs sysfs $LFS/sys
    mount –vt devpts devpts $LFS/dev/pts
    mount –vt tmpfs shm $LFS/dev/shm
    3)Chroot到目标系统下
    chroot "$LFS" /usr/bin/env -i \
    HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
    PATH=/bin:/usr/bin:/sbin:/usr/sbin \
    /bin/bash --login
        好啦,看到什么了。。。呵呵。。那很好哦。。go on
    3 设定root password
          passwd root
    (下面的操作就和《手把手教你如何建立自己的Linux系统 第二版》后面部分的差不多相同了)
    4时间设置(Configuring the setclock Script)
    代码:
    cat > /etc/sysconfig/clock << "EOF"
    # Begin /etc/sysconfig/clock
    UTC=1
    # End /etc/sysconfig/clock
    EOF
    5设置bash下的键盘功能键设置
    代码:
    cat > /etc/inputrc << "EOF"
    set horizontal-scroll-mode Off
    set meta-flag On
    set input-meta On
    set convert-meta Off
    set output-meta On
    set bell-style none
    "\eOd": backward-word
    "\eOc": forward-word
    "\e[1~": beginning-of-line
    "\e[4~": end-of-line
    "\e[5~": beginning-of-history
    "\e[6~": end-of-history
    "\e[3~": delete-char
    "\e[2~": quoted-insert
    "\eOH": beginning-of-line
    "\eOF": end-of-line
    "\e[H": beginning-of-line
    "\e[F": end-of-line
    EOF
    6设置Bash Shell启动文件(The Bash Shell Startup Files)
    代码:
    cat > /etc/profile << "EOF"
    # Begin /etc/profile
    export LANG=zh_CN.UTF-8
    export INPUTRC=/etc/inputrc
    alias ls="ls --color"
    export PS1='\u:\w\$ '
    # End /etc/profile
    EOF
    7设置本地网络名
    代码:
    echo "HOSTNAME=mylinux" > /etc/sysconfig/network
    8
    设置hosts文件
    代码:
    cat > /etc/hosts << "EOF"
    # Begin /etc/hosts (no network card version)
    127.0.0.1 mylinux localhost
    # End /etc/hosts (no network card version)
    EOF
    9设置网络的静态地址
    代码:
    cd /etc/sysconfig/network-devices &&
    mkdir -v ifconfig.eth0 &&
    cat > ifconfig.eth0/ipv4 << "EOF"
    ONBOOT=yes
    SERVICE=ipv4-static
    IP=192.168.1.1
    GATEWAY=192.168.1.2
    PREFIX=24
    BROADCAST=192.168.1.255
    EOF
    注意:IP、GATEWAY、BROADCAST的地址根据自己的实际情况设置。
    10设置DNS
    代码:
    cat > /etc/resolv.conf << "EOF"
    # Begin /etc/resolv.conf
    nameserver 你的首个DNS的地址
    nameserver 你的第二DNS的地址
    # End /etc/resolv.conf
    EOF
    (中国的是:202.101.98.53 OR 202.101.98.54,应该不会改吧,呵呵。。)
    11建立fstab文件
    代码:
    cat > /etc/fstab << "EOF"
    # Begin /etc/fstab
    # file system  mount-point  type   options         dump  fsck
    #                                                        order
    /dev/hda1       /            ext3  defaults        1     1
    /dev/hda2       swap         swap   pri=1           0     0
    proc              /proc        proc   defaults        0     0
    sysfs             /sys         sysfs  defaults        0     0
    devpts          /dev/pts     devpts gid=4,mode=620  0     0
    shm              /dev/shm     tmpfs  defaults        0     0
    # End /etc/fstab
    EOF
    镜镜姐姐提醒:(请注意硬盘设备号!一定要按照自己的分区设置,不要照抄青铜镜的!要不你的系统会起不来了!)

    好啦,寒窗苦学LFS终于好戏上台啦。。。
    12安装内核Linux-2.6.22.5
    代码:
    cd /sources
    tar xvf linux-2.6.22.5.tar.bz2
    cd linux-2.6.22.5
    make mrproper
    make menuconfig
    根据你的机器实际情况配置内核选项,这里为了说明方便,以VMWare5.5为基础虚拟的硬件来配置内核
    如果在建立虚拟机的时候是选择的BusLogic的SCSI磁盘,那么应该在Device Drivers->SCSI device support->SCSI low-level drivers下加入BusLogic SCSI support的支持,可以采用编译到内核来避免未用initrd脚本来加载模块而导致启动失败


    如果想支持网络则应该在Device Drivers->Networking support->Ethernet (10 or 100Mbit)加入AMD PCnet32 PCI support的支持,可以采用编译到内核也可以编译成模块的方式


    如果想支持声卡则应该在Device Drivers->Sound->Advanced Linux Sound Architecture->CI devices加入(Creative) Ensoniq AudioPCI 1371/1373的支持,编译成模块即可


    文件系统的支持,需要根据之前将目标系统分区格式化的情况而定,使用了什么文件系统就需要加入该文件系统的支持,因之前采用的是Xfs文件系统,因此在File Systems->XFS support加入XFS的支持,可以采用编译到内核来避免未用initrd脚本来加载模块而导致启动失败

    同时还需要加入framebuffer字体支持,在Device Drivers->Graphics support->Console display driver support中加入Framebuffer Console support并选择上Select compiled-in fonts,选上VGA 8x16 font这一种字体就可以了,这里将这些选择都编译到内核中

    可以保存退出了
    代码:
    make
    make modules_install
    cp -v arch/i386/boot/bzImage /boot/lfskernel-2.6.22.5
    cp -v System.map /boot/System.map-2.6.22.5
    cp -v .config /boot/config-2.6.22.5
    install -d /usr/share/doc/linux-2.6.22.5
    cp -r Documentation/* /usr/share/doc/linux-2.6.22.


    13安装Grub,使系统能启动,这里设置需要根据情况而修改,这里以之前介绍的分区设置为例:
    代码:
    grub

    出现什么了呢。。。

    输入root (hd0,0)
    输入setup (hd0)
    quit

    14 FHS 规定 GRUB 的 menu.lst 文件必须链接到 /etc/grub/menu.lst。为了符合这个规定,可以用下面的命令:
    将menu.lst连接到/etc目录下
    代码:
    mkdir -v /etc/grub
    ln -sv /boot/grub/menu.lst /etc/grub

    15退出制作环境:
    代码:
    logout
    卸载虚拟文件系统:
    引用:
    ________________________________________
    umount -v $LFS/dev/pts
    umount -v $LFS/dev/shm
    umount -v $LFS/dev
    umount -v $LFS/proc
    umount -v $LFS/sys
    ________________________________________
    卸载 LFS 自己的文件系统:
    引用:
    ________________________________________umount -v $LFS



    16好啦,真的要收工啦。。。
    重启系统
    shutdown -r now
    怎么样。。。o(∩_∩)o…
  •  楼主| 发表于 2008-7-30 23:01:20 | 显示全部楼层
    (不好意思,发现下面这个不用,因为以上是基于ext3的)

    文件系统的支持,需要根据之前将目标系统分区格式化的情况而定,使用了什么文件系统就需要加入该文件系统的支持,因之前采用的是Xfs文件系统,因此在File Systems->XFS support加入XFS的支持,可以采用编译到内核来避免未用initrd脚本来加载模块而导致启动失败
    回复 支持 反对

    使用道具 举报

    发表于 2008-7-31 08:25:18 | 显示全部楼层
    哦,写的真好,支持支持!!!
    回复 支持 反对

    使用道具 举报

    发表于 2008-7-31 12:53:29 | 显示全部楼层
    为什么我的必须执行:
    cp /lfs-sources/* $LFS/sources

    才能执行make?

    而且,很郁闷的是,总是到[68]glibc时,出错退出。
    回复 支持 反对

    使用道具 举报

    发表于 2008-8-3 13:01:41 | 显示全部楼层
    其實 jhalfs 的用法(包括新、舊版)在精華區裡都有的
    回复 支持 反对

    使用道具 举报

     楼主| 发表于 2008-8-5 13:20:22 | 显示全部楼层

    郁闷,不知。。。。

    。。。。。。。。。。。。。。。。。。。。。。。。
    回复 支持 反对

    使用道具 举报

    发表于 2008-9-29 11:36:57 | 显示全部楼层
    Post by fengandy;1880415
    目前网上关于用jhalfs-2.3.1建立LFS的文章相当罕见。。。但俺只有两张livecd 分别是:lfslivecd-x86-6.3-r2160.iso和  lfslivecd-x86-6.3-r2145.iso  ,那时下载时随便找个新版本就下载了,后来才发现,天啊,文档缺啊,这两个是新版本呢。。。幸好找到了  LFS-BOOK-6.3-rc1-HTML文档和飞豹大侠的《 手把手教你如何建立自己的Linux系统 第二版》。。。前天手动完成了第一个mylinux,哈哈,高兴,好像镜镜姐姐说的:高兴得在被窝里也偷笑。。。
    但想要是用jhalfs-2.3.1,怎么做呢,于是漫开了探索的步伐。。。(建议初学者不要用这种方法)
    下面是详细过程,好像手把手那么详细了,不用急。。开始吧
    准备好lfslivecd-x86-6.3-r2160.iso 从vmware下启动,提示:Number of processors可以选two(若你想快点),内存呢,四五百M分得出吧,,选LIS logic(我选这个,不知可以选BUS logic?可以试试,告诉我哦。。o(∩_∩)o...),我用IDE,听说选scsi也可以,但配置内核时要记得选支持SCSI的选项哦,具体后面再说。。)
    1、进入可以一直回车直到命令行出现
    2、设置密码(执行jhalfs前最好设置一下密码)
           passwd root
          passwd jhalfs
    3分区:
    命令cfdisk /dev/hda
            看到什么了呢。。
    分吧,我分为hda1:6000(/)和hda2:2000(swap)
    mkswap /dev/hda2    格式化swap
    mke2fs /dev/hda1    格式化hda1使用格式是ext3
    swapon /dev/hda2    使用swap分区
      export LFS=/mnt/lfs
    mkdir –pv $LFS
    mount /dev/hda1 $LFS    把hda1加到到mnt目录下
    mkdir –pv $LFS (lfs必须在jhalfs设置时和这里保持一致)
    chmod -v a+wt /mnt/lfs
    chown -v jhalfs /mnt/lfs (这个很重要否则jhalfs提示没有写权限)

    $LFS/tools/不用创建,jhalfs会自动创建
    注意也不用创建lfs帐户了,jhalfs会处理
    4、转到jhalfs用户
           # su jhalfs
    5、转到jhalfs用户下的jhalfs
           $ cd
    $ cd jhalfs-2.3.1  
    6、修改编译优化参数(可选)
    改O3pipe_march文件
    $ vi /home/jhalfs/jhalfs-2.1/optimize/opt_config.d/O3pipe_march
    以下是O3pipe_march的内容:
    CFLAGS_O3pipe_march=$CFLAGS_O3pipe" -march=pentium4"改成你使用的CPU类型     如我的是amd的则(athlon-xp)
    CXXFLAGS_O3pipe_march=$CFLAGS_O3pipe"  -march=pentium4"同上
    LDFLAGS_O3pipe_march=$LDFLAGS_O3pipe
    OTHER_CFLAGS_O3pipe_march=$CFLAGS_O3pipe" -march=pentium4"同上
    OTHER_CXXFLAGS_O3pipe_march=$CXXFLAGS_O3pipe" -march=pentium4"同上
    OTHER_LDFLAGS_O3pipe_march=$LDFLAGS_O3pipe
    (唐师父说:按esc键,接着输入冒号:,在冒号后面输入wq,回车退去。)

    7、然后开始执行 make或者time make  (。。你的眼睛是否在转呢。。不是贼溜溜的,是雪亮的。。哈哈o(∩_∩)o...)

    出现以下菜单(注红线标注的地方是值得注意的地方,其他地方默认设置都可以了)
    --- BOOK Settings  --->                                                        
    Use BOOK (Linux From Scratch)  --->选择要编译的类型        
    (X) Linux From Scratch要编译LFS选择这个                                                                  
    ( ) Cross-Compiled Linux From Scratch这个是CLFS                                                   
    ( ) Cross-Compiled Linux From Scratch (Sysroot method)也是CLFS不过还在开发                                   
    ( ) Cross-Compiled Linux From Scratch (Embedded Systems)貌似嵌入系统的CLFS                                 
    ( ) Hardened Linux From Scratch  HLFS这个是用在安全方面的                                                             ( ) Beyond Linux From Scratch    BLFS这个大家都知道                                                        

         Release (Working Copy)  --->     使用哪个版本的BOOK
    ( ) SVN                        最新的BOO,开发中的                                          
    (X) Working Copy               稳定版,也是光盘上带的                                          
    ( ) Branch or stable book      分枝??                                         
    (/usr/share/LFS-BOOK-6.2-XML) Loc of working copy (mandatory)选择书的位置,默认的主可以                                    

             [ ] Add custom tool support                                                                       

             [ ] Add blfs-tool support                                                                        

       --- General Settings  --->常规设置

             [ ] Change the default user/group for this build     建立LFS的用户和组,可以不选                                 

             (/mnt/build_dir) Build Directory 建立的LFS位置,自己按需要改 (这里设置/mnt/lfs)                                 

             
  • Retrieve source files                            源的位置                                 

             (/lfs-sources) Package Archive Directory             别改,默认就可以                                 

             (http://ftp.lfs-matrix.net/) FTP mirror              如果需要下载,使用这个地址下                                 

            
  •    Always retrieve kernel package (see help)                                       

            
  • Run the makefile                                 退出菜单后直接make                                 

            [ ] Rebuild files                                                                     

    --- Build Settings  --->         
  • Run testsuites  运行测试,默认是选上的,建议不要取消                                                                                 

            Tests level (Only final system Glibc, GCC and Binutils testsuites)  --->  可以选择测试的内容默认的就行了                     

            Flavour (Don't stop on test suite failures)  --->                                                

           [ ] Use a custom fstab file             使用fstab文件,需要指定fstab文件位置                                                              

           [ ] Build the kernel       要不要自动编译内核,需要指定内核配置文件的位置,一般没有设定好的配置文件不要选择此项,jhalfs执行完毕后自己编译内核                                                            

          
  • Strip Installed Binaries/Libraries  好像是自动清理调试代码                                                              

          
  • Install vim-lang package            vim的语言支持补丁,建议加上                                                              

           (GMT) TimeZone                         时区  我的是(Asia/Shanghai)                                                            

           ($LANG) Language                       语言设置,你在使用光盘启动的时候选择的语言就是你$LANG的内容    镜镜姐姐推荐en_US.UTF8

           Groff page size (letter)  --->   

        --- Advanced Features  --->高级设置

          
  • Create SBU and disk usage report                                                            

           [ ] Run comparison analysis on final stage                                                      

          
  • Use optimization (see help)              使用优化参数                                                

               Optimization level  (Final system only)  --->全部默认就行了                                             

       --- Internal Settings (WARNING: for jhalfs developers only)  --->                           

          [ ] Rebuild the Makefile (see help)                                                   

              ---                                                                                 Load an Alternate Configuration File                                                   

          Save Configuration to an Alternate File                                                

    完成后退出程序开始配置

    余下的过程都是自动化的,耐心等待完成即可,一般不会出现错误!

    去休息一下吧,唐师父说,andy 那时在唱《布拉格广场》,之后他也跟着唱起来了:
    A a fu shou a a fu shou yap so so sory so so so …还跳着舞旋转。。。o(∩_∩)o…

    开始编译了,我在VM上干的,一点开始,到六点多就收工了

    执行完毕后会看到以下信息

    To be able to boot your new system you need to follow the next steps:

    - Enter to the chroot using the command found in the section

       - Entering the Chroot Environment - except if building CLFS with METHOO=boot.

    - Set a password for the root user
    。。。。。。。。
    If you are an experienced LFS user, several of those steps can be skipped or done in
    a different way.  But then, that is something that you already know and there is no
    need to discuss it here.
    Have a nice day :-)
    至此,你的LFS半成品就可新鲜出炉了。我们还得进行最后的收尾工作!

    下面的过程就很重要了,一般在网上也找不到文档,由于jhalfs是自动化过程,所以执行完毕后也不知道到哪一步了,网上说直接执行到第7章了其实也不全面,jhalfs除了内核没有编译(如果你有配置文件也可以选择让jhalfs执行),bootstrip的安装也完成了,剩下的工作就是配置、编译内核、设置grub,如果这个过程没有问题就大功告成了!我的军队,前进。。。哈哈。。
    1、  Jhalfs执行完毕后处于jhalfs用户的状态,执行一下代码:exit     
    是不是回到root了呢。。
    2   1) mount --bind /dev /mnt/lfs/dev     (这个非常重要,关系到grub能不能找到设备,这个要在进入chroot环境之前做
    2)加载必要的文件系统
    mount -vt proc proc $LFS/proc
    mount -vt sysfs sysfs $LFS/sys
    mount –vt devpts devpts $LFS/dev/pts
    mount –vt tmpfs shm $LFS/dev/shm
    3)Chroot到目标系统下
    chroot "$LFS" /usr/bin/env -i \
    HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
    PATH=/bin:/usr/bin:/sbin:/usr/sbin \
    /bin/bash --login
        好啦,看到什么了。。。呵呵。。那很好哦。。go on
    3 设定root password
          passwd root
    (下面的操作就和《手把手教你如何建立自己的Linux系统 第二版》后面部分的差不多相同了)
    4时间设置(Configuring the setclock Script)
    代码:
    cat > /etc/sysconfig/clock << "EOF"
    # Begin /etc/sysconfig/clock
    UTC=1
    # End /etc/sysconfig/clock
    EOF
    5设置bash下的键盘功能键设置
    代码:
    cat > /etc/inputrc << "EOF"
    set horizontal-scroll-mode Off
    set meta-flag On
    set input-meta On
    set convert-meta Off
    set output-meta On
    set bell-style none
    "\eOd": backward-word
    "\eOc": forward-word
    "\e[1~": beginning-of-line
    "\e[4~": end-of-line
    "\e[5~": beginning-of-history
    "\e[6~": end-of-history
    "\e[3~": delete-char
    "\e[2~": quoted-insert
    "\eOH": beginning-of-line
    "\eOF": end-of-line
    "\e[H": beginning-of-line
    "\e[F": end-of-line
    EOF
    6设置Bash Shell启动文件(The Bash Shell Startup Files)
    代码:
    cat > /etc/profile << "EOF"
    # Begin /etc/profile
    export LANG=zh_CN.UTF-8
    export INPUTRC=/etc/inputrc
    alias ls="ls --color"
    export PS1='\u:\w\$ '
    # End /etc/profile
    EOF
    7设置本地网络名
    代码:
    echo "HOSTNAME=mylinux" > /etc/sysconfig/network
    8
    设置hosts文件
    代码:
    cat > /etc/hosts << "EOF"
    # Begin /etc/hosts (no network card version)
    127.0.0.1 mylinux localhost
    # End /etc/hosts (no network card version)
    EOF
    9设置网络的静态地址
    代码:
    cd /etc/sysconfig/network-devices &&
    mkdir -v ifconfig.eth0 &&
    cat > ifconfig.eth0/ipv4 << "EOF"
    ONBOOT=yes
    SERVICE=ipv4-static
    IP=192.168.1.1
    GATEWAY=192.168.1.2
    PREFIX=24
    BROADCAST=192.168.1.255
    EOF
    注意:IP、GATEWAY、BROADCAST的地址根据自己的实际情况设置。
    10设置DNS
    代码:
    cat > /etc/resolv.conf << "EOF"
    # Begin /etc/resolv.conf
    nameserver 你的首个DNS的地址
    nameserver 你的第二DNS的地址
    # End /etc/resolv.conf
    EOF
    (中国的是:202.101.98.53 OR 202.101.98.54,应该不会改吧,呵呵。。)
    11建立fstab文件
    代码:
    cat > /etc/fstab << "EOF"
    # Begin /etc/fstab
    # file system  mount-point  type   options         dump  fsck
    #                                                        order
    /dev/hda1       /            ext3  defaults        1     1
    /dev/hda2       swap         swap   pri=1           0     0
    proc              /proc        proc   defaults        0     0
    sysfs             /sys         sysfs  defaults        0     0
    devpts          /dev/pts     devpts gid=4,mode=620  0     0
    shm              /dev/shm     tmpfs  defaults        0     0
    # End /etc/fstab
    EOF
    镜镜姐姐提醒:(请注意硬盘设备号!一定要按照自己的分区设置,不要照抄青铜镜的!要不你的系统会起不来了!)

    好啦,寒窗苦学LFS终于好戏上台啦。。。
    12安装内核Linux-2.6.22.5
    代码:
    cd /sources
    tar xvf linux-2.6.22.5.tar.bz2
    cd linux-2.6.22.5
    make mrproper
    make menuconfig
    根据你的机器实际情况配置内核选项,这里为了说明方便,以VMWare5.5为基础虚拟的硬件来配置内核
    如果在建立虚拟机的时候是选择的BusLogic的SCSI磁盘,那么应该在Device Drivers->SCSI device support->SCSI low-level drivers下加入BusLogic SCSI support的支持,可以采用编译到内核来避免未用initrd脚本来加载模块而导致启动失败


    如果想支持网络则应该在Device Drivers->Networking support->Ethernet (10 or 100Mbit)加入AMD PCnet32 PCI support的支持,可以采用编译到内核也可以编译成模块的方式


    如果想支持声卡则应该在Device Drivers->Sound->Advanced Linux Sound Architecture->CI devices加入(Creative) Ensoniq AudioPCI 1371/1373的支持,编译成模块即可


    文件系统的支持,需要根据之前将目标系统分区格式化的情况而定,使用了什么文件系统就需要加入该文件系统的支持,因之前采用的是Xfs文件系统,因此在File Systems->XFS support加入XFS的支持,可以采用编译到内核来避免未用initrd脚本来加载模块而导致启动失败

    同时还需要加入framebuffer字体支持,在Device Drivers->Graphics support->Console display driver support中加入Framebuffer Console support并选择上Select compiled-in fonts,选上VGA 8x16 font这一种字体就可以了,这里将这些选择都编译到内核中

    可以保存退出了
    代码:
    make
    make modules_install
    cp -v arch/i386/boot/bzImage /boot/lfskernel-2.6.22.5
    cp -v System.map /boot/System.map-2.6.22.5
    cp -v .config /boot/config-2.6.22.5
    install -d /usr/share/doc/linux-2.6.22.5
    cp -r Documentation/* /usr/share/doc/linux-2.6.22.


    13安装Grub,使系统能启动,这里设置需要根据情况而修改,这里以之前介绍的分区设置为例:
    代码:
    grub

    出现什么了呢。。。

    输入root (hd0,0)
    输入setup (hd0)
    quit

    14 FHS 规定 GRUB 的 menu.lst 文件必须链接到 /etc/grub/menu.lst。为了符合这个规定,可以用下面的命令:
    将menu.lst连接到/etc目录下
    代码:
    mkdir -v /etc/grub
    ln -sv /boot/grub/menu.lst /etc/grub

    15退出制作环境:
    代码:
    logout
    卸载虚拟文件系统:
    引用:
    ________________________________________
    umount -v $LFS/dev/pts
    umount -v $LFS/dev/shm
    umount -v $LFS/dev
    umount -v $LFS/proc
    umount -v $LFS/sys
    ________________________________________
    卸载 LFS 自己的文件系统:
    引用:
    ________________________________________umount -v $LFS



    16好啦,真的要收工啦。。。
    重启系统
    shutdown -r now
    怎么样。。。o(∩_∩)o…







  • [color="Red"]
    用jhalfs的方法做LFS,
    简单、方便、快速、有效。
    这么爽的方法,
    给你越扯越繁琐、复杂,
    不服你都不行!

    回复 支持 反对

    使用道具 举报

    发表于 2008-9-29 12:54:04 | 显示全部楼层
    镜兄,我把部份内容删了,希望保留和平讨论气纷。

    技术讨论难免会有立场不同的时候,但请避免过激言论,以免挑起不必要争论。谢谢!
    回复 支持 反对

    使用道具 举报

    发表于 2008-9-29 14:52:45 | 显示全部楼层
    Post by d00m3d;1888452
    镜兄,我把部份内容删了,希望保留和平讨论气纷。

    技术讨论难免会有立场不同的时候,但请避免过激言论,以免挑起不必要争论。谢谢!


    我那个应该算是友谊赛……
    回复 支持 反对

    使用道具 举报

    发表于 2008-10-6 15:30:08 | 显示全部楼层

    希望镜兄的BLFS6.3版能早日面市

    希望镜兄的BLFS6.3版能早日面市
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表