LinuxSir.cn,穿越时空的Linuxsir!

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

无题

[复制链接]
发表于 2006-11-25 19:40:21 | 显示全部楼层 |阅读模式
在网吧凭印象写的:
mount -o loop -t ext2 root.ext2 /mnt/loop
cp -rf  /mnt/loop/* /mnt/hdaxx
chroot /mnt/hdaxx/usr/src
rm -rf /etc/init.d/rcsysinit/*
tar xf /lfs-source/lfs-bootsr*
make
vi /etc/fstab

启动时加载内核就行了,initrd不要

安装步骤大概是这样
可能会漏写...
我是成功过了,所以敢写出来
这样live-cd应该就可移到硬盘上去了,接着继续漫长的LFS吧....
发表于 2006-11-26 08:08:39 | 显示全部楼层
哪一版的 LiveCD?
回复 支持 反对

使用道具 举报

发表于 2006-11-26 11:44:38 | 显示全部楼层
最近才接触linux,昨天才知道了LFS,心情激动呀!哈哈!
下载了liveCD打算尽快开始的LFS之旅!

楼主的问题我很感兴趣。我在用liveCD启动后,想通过dd将光盘启动后的文件目录都复制到我的硬盘分区中,然后通过修改一些必要的配置,完成硬盘启动。不过,dd完成后,mount到的文件中关键的都不可用,比如bin、etc啥的(本身我是新手),用fsck也是错误提示,唉,就此我就没有继续,老老实实地按照LFS-book进行吧!

不过,我相信以前有人弄过,搞到硬盘上的主意还是挺好的!期待中,谁搞过,教教我,呵呵!
回复 支持 反对

使用道具 举报

发表于 2006-11-26 13:25:24 | 显示全部楼层
/etc/fstab里面这么加详细点
回复 支持 反对

使用道具 举报

发表于 2006-11-26 16:14:54 | 显示全部楼层
Post by tanat
最近才接触linux,昨天才知道了LFS,心情激动呀!哈哈!
下载了liveCD打算尽快开始的LFS之旅!

楼主的问题我很感兴趣。我在用liveCD启动后,想通过dd将光盘启动后的文件目录都复制到我的硬盘分区中,然后通过修改一些必要的配置,完成硬盘启动。不过,dd完成后,mount到的文件中关键的都不可用,比如bin、etc啥的(本身我是新手),用fsck也是错误提示,唉,就此我就没有继续,老老实实地按照LFS-book进行吧!

不过,我相信以前有人弄过,搞到硬盘上的主意还是挺好的!期待中,谁搞过,教教我,呵呵!
多看精华吧!
回复 支持 反对

使用道具 举报

发表于 2006-11-26 23:39:58 | 显示全部楼层
看我发的帖子,呵呵。
http://bbs.linuxsir.cn/showthread.php?t=274629
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-3 18:25:04 | 显示全部楼层
Post by d00m3d
哪一版的 LiveCD?

不好意思,停网几天了~
我光驱烧爆了所以才想到这么搞
livecd是6.2的,内核不用重编就可以用。
有人感兴趣的话下次我再把完整的步骤贴上.......
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-4 12:37:13 | 显示全部楼层
假定你已经准备好两个分区hda5(swap),hda6(root),以下是具体安装步骤:
install -d /mnt/{hda6,cdrom,loop}

如果你是用live-cd启动:
mount /dev/lfs-cd /mnt/cdrom
如果是从网上下的镜像而又没有刻录机时,可以启动其它系统:
mount -o loop ~/downloads/lfslivecd-x86-6.2-2.iso /mnt/cdrom

mount /dev/hda6 /mnt/hda6
mount -o loop /mnt/cdrom/root.ext2 /mnt/loop/
cp -rf /mnt/loop/* /mnt/hda6
chroot /mnt/hda6
cd /usr/src
rm -f /etc/rc.d/rcsysinit.d/*
tar xf /lfs-sources/lfs-bootscripts-6.2.tar.bz2
cd lfs-bootscripts-6.2 && make
chmod a+wt /tmp
rm -f /boot
mkdir /boot
vi /etc/fstab

fstab内容:

  1. # Begin /etc/fstab

  2. # filesystem                mount-point        fs-type                options                dump        fsck-order
  3. /dev/hda6                /                ext3                defaults        0        0
  4. /dev/hda5                swap                swap                defaults        0        0
  5. proc                        /proc                proc                defaults        0        0
  6. sysfs                        /sys                sysfs                defaults        0        0
  7. devpts                        /dev/pts        devpts                gid=4,mode=620        0        0
  8. # tmpfs                        /dev/shm        tmpfs                defaults        0        0

  9. # End /etc/fstab
复制代码


修改你的grub配置文件:
(由于mbr被还原精灵占用,我是用grldr引导的linux,配置文件可能有些出入)


  1. # Begin menu.lst

  2. color green/black red/black
  3. timeout 10
  4. default 0

  5. title LinuxFromScrach 6.2-2
  6. kernel (hd0,5)/boot/linux root=/dev/hda6 vga=791 quiet

  7. title MS-DOS
  8. chainloader (hd0,0)/bootsect.dos

  9. title Previous Menu
  10. chainloader (hd0,0)+1
  11. rootnoverify (hd0)

  12. title Reboot
  13. reboot

  14. title Halt
  15. halt

  16. # End menu.lst
复制代码

exit
cp /mnt/cdrom/boot/isolinux/linux /mnt/hda6/boot/
reboot

大功告成!如有遗漏之处还请大家指出。
如果想偷懒直接用这个系统的话可以把"/usr/local/bin"加到/etc/profile的PATH环境变量里,重新配置内核,加入声音支持。
下面再附上个蹩脚的shell程序,本来写这个是用来提取LFSBOOK里的命令来编译LFS,但一想编译过程
中出现的情况很多,单靠这个脚本还远远不够,现贴出来意在抛砖引玉,看有没有更好的用途,也顺便跟大家交流一下shell。


  1. #!/bin/sh

  2. # Begin lfs-batchfile-gen.sh
  3. # Author : LXD


  4. BOOKDIR=/usr/share/LFS-BOOK-6.2-HTML
  5. SOURCEDIR=/lfs-source
  6. CURRENTDIR=`pwd`

  7. cd $BOOKDIR

  8. cmds_in()
  9. {
  10.         FILE=$1;
  11.         if echo $FILE | grep '.*\/' > /dev/null ; then
  12.                 CDIR=$( echo $FILE | sed -n 's@\(.*/\).*@\1@p' )
  13.                 FILE=${FILE##*/}
  14.                 [ $CDIR ] && cd $CDIR;
  15.         fi

  16.         CHAPTER=$(sed -n '/<title.*$/{
  17.                 /<title.*>.*<\/title>/{
  18.                         s/<title.*>\(.*\)<\/title>/\1/gp
  19.                         d
  20.                 }
  21.                 /<\/title>/!{
  22.                         :NEXT
  23.                         N
  24.                         s/<title.*>\(.*\)<\/title>/\1/g;TNEXT
  25.                         p
  26.                         d
  27.                 }
  28.         }' $FILE | sed 's/\&amp;/\&/g
  29.                 s/\&lt;/</g
  30.                 s/\&gt;/>/g
  31.                 s/.*\&nbsp;//g
  32.         ')

  33.         PACKAGE=$(echo $CHAPTER | gawk '$0 ~ /.*-[0-9\.]*/ {
  34.                 print tolower ( $1 )
  35.         }')

  36.         COMMANDS=$(sed -n '/<kbd.*$/{
  37.                 /<kbd.*>.*<\/kbd>/{
  38.                         s/<kbd.*>\(.*\)<\/kbd>/\1/gp
  39.                         d
  40.                 }
  41.                 /<\/kbd>/!{
  42.                         :NEXT
  43.                         N
  44.                         /<\/kbd>/!bNEXT
  45.                         s/<kbd class="command">\(.*\)<\/kbd>/\1/g
  46.                         s/<.*">//g
  47.                         s/<.\{1,3\}>//g
  48.                         s/<\/.*>//g
  49.                         p
  50.                         d
  51.                 }
  52.         }' $FILE | sed '
  53.                 s/\&amp;/\&/g
  54.                 s/\&lt;/</g
  55.                 s/\&gt;/>/g
  56.                 s/^ *        *$//g
  57.         ')
  58.         echo -e '#--------------------------------------------------'
  59.         echo -e '#' `pwd`
  60.         echo '#' $CHAPTER
  61.         [ "$COMMANDS" ] && echo "cd " "$SOURCEDIR"
  62.         [ "$PACKAGE" ] && echo -e tar xf "$PACKAGE"'.tar.*' '&& cd' "$PACKAGE" "\n"
  63.         [ "$COMMANDS" ] && echo "$COMMANDS"
  64.         [ "$PACKAGE" ] && echo -e '\nrm -rf ' "$PACKAGE"
  65.         echo -e '\n\n\n'

  66.         NEXTFILE=$( grep 'accesskey="n".*href' "$FILE" | \
  67.                         sed  1q | sed  -n 's@.*href="\(.*\)" .*@\1@p' )

  68.         [ $NEXTFILE ] && cmds_in $NEXTFILE
  69. }
  70. case "$#" in
  71.         0)
  72.                 echo -e '\033[0;33mGenerating out.sh...\033[0;0m'
  73.                 ;;
  74.         *)
  75.                 exit 1
  76.                 ;;
  77. esac

  78. cmds_in index.html > $CURRENTDIR/out.sh
  79. cd $CURRENTDIR

  80. # 在这里加入处理细节的代码
  81. sed '/Creating a File System on the Partition/,/#---/{
  82.         s/<xxx>/aaa/g
  83.         s/<yyy>/bbb/g
  84.         s/<zzz>/ccc/g
  85. }' out.sh > ~out.sh


  86. mv ~out.sh out.sh

  87. # End lfs-batchfile-gen.sh
复制代码

下面是out.sh的片段:

  1. ......
  2. #--------------------------------------------------
  3. # /usr/share/LFS-BOOK-6.2-HTML/chapter05
  4. # Binutils-2.16.1 - Pass 1
  5. cd  /lfs-source
  6. tar xf binutils-2.16.1.tar.* && cd binutils-2.16.1

  7. mkdir -v ../binutils-build
  8. cd ../binutils-build
  9. ../binutils-2.16.1/configure --prefix=/tools --disable-nls
  10. make
  11. make install
  12. make -C ld clean
  13. make -C ld LIB_PATH=/tools/lib
  14. cp -v ld/ld-new /tools/bin

  15. rm -rf  binutils-2.16.1




  16. #--------------------------------------------------
  17. # /usr/share/LFS-BOOK-6.2-HTML/chapter05
  18. # GCC-4.0.3 - Pass 1
  19. cd  /lfs-source
  20. tar xf gcc-4.0.3.tar.* && cd gcc-4.0.3

  21. mkdir -v ../gcc-build
  22. cd ../gcc-build
  23. ../gcc-4.0.3/configure --prefix=/tools \
  24.     --with-local-prefix=/tools --disable-nls --enable-shared \
  25.     --enable-languages=c
  26. make bootstrap
  27. make install
  28. ln -vs gcc /tools/bin/cc

  29. rm -rf  gcc-4.0.3




  30. #--------------------------------------------------
  31. ......
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2007-1-5 22:57:18 | 显示全部楼层
楼主这么好的帖子 一定要把标题改一下
回复 支持 反对

使用道具 举报

发表于 2007-1-14 16:16:35 | 显示全部楼层
不过这样作的系统在init到别的级别时会出问题
比如 init 6
主要时/usr/bin/shutdown-helper脚本的问题
回复 支持 反对

使用道具 举报

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

本版积分规则

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