Chinaunix首页 | 论坛 | 博客
  • 博客访问: 237087
  • 博文数量: 21
  • 博客积分: 796
  • 博客等级: 军士长
  • 技术积分: 305
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-16 01:03
文章分类
文章存档

2020年(1)

2017年(1)

2016年(1)

2015年(2)

2012年(9)

2011年(7)

我的朋友

分类: LINUX

2011-07-16 22:16:01

LFS(Linux From Scratch)是一种由源代码来制作Linux发布的一种方法。这种方法从一个现有的发布版本(例如,ReaHat,Ubuntu或LFS提供的Live CD等)开始,然后下载相关软件的源代码并编译,最终生成一个新的Linux发布版本。LFS主要提供了一本描述上述制作步骤的。以源代码为起点一步一步按照书中给出的指导进行制作工作,对于学习Linux相关的背景知识大有裨益,但是需要有足够的时间和耐心。

受到内存和硬盘容量的限制,我在工作中需要用到一个纯粹命令行的Linux发布版本,但是主流的Linux的各个发行版本都不提供这种纯粹命令行的环境,所以需要自己制作一个,LFS自然是一种选择(另外一种从源代码开始工作的发行方式是)。由于LFS要求的制作周期长,而自己只是出于工作的考虑,暂时没有系统学习的需要,所以我希望能够由LFS的Live CD为起点,直接将其中已经编译好的、运行很稳定的Linux系统直接安装到硬盘上。前日有幸读到Myhsg的文章《把LFS LiveCD安装到硬盘》,该文为我解决了实际问题。关于制作的工作原理,可以参考该文章。下面列出我在虚拟机环境中制作的详细步骤。

# 虚拟机:VMware 6.5 Workstation
# LFS:
# 在硬盘上创建文件系统,并将livecd中的数据复制到该文件系统中
# /dev/hda1是根文件系统,/dev/hda2是交换区

  1. fdisk /dev/hda

  2. mke2fs -j /dev/hda1

  3. mkswap /dev/hda2

  4. mkdir /mnt/livehd

  5. mount /dev/hda1 /mnt/livehd

  6. mkdir /mnt/livecd

  7. mount -o loop /dev/shm/.cdrom/root.ext2 /mnt/livecd

  8. cp -Rv /mnt/livecd/* /mnt/livehd

# 将后面用到的一些软件复制到硬盘

  1. mkdir /mnt/cdrom

  2. mount -t iso9660 /dev/cdrom /mnt/cdrom

  3. cp /mnt/cdrom/lfs-sources/linux* /mnt/livehd/usr/src

  4. cp /mnt/cdrom/lfs-sources/grub* /mnt/livehd/usr/src

  5. cp /mnt/cdrom/lfs-sources/lfs* /mnt/livehd/usr/src

# 切换到硬盘工作

  1. mount --bind /dev /mnt/livehd/dev

  2. chroot /mnt/livehd

# 编译内核源码,省略了源代码解压和切换目录的操作(下同)。


  1. make LANG=$LANG LC_ALL= menuconfig

  2. make

  3. make modules_install

  4. mkdir /boot

  5. cp arch/i386/boot/bzImage /boot/lfskernel-2.6.22.5

  6. cp System.map /boot/System.map-2.6.22.5

  7. cp .config /boot/config-2.6.22.5

  8. install -d /usr/share/doc/linux-2.6.22.5

  9. cp -r Documentation/* /usr/share/doc/linux-2.6.22.5

# 重新安装grub

  1. patch -Np1 -i ../grub-0.97-disk_geometry-1.patch

  2. ./configure --prefix=/usr

  3. make

  4. make install

  5. make clean

  6. mkdir /boot/grub

  7. cp /usr/lib/grub/i386-pc/stage{1,2} /boot/grub

  8. cp /usr/lib/grub/i386-pc/e2fs_stage1_5 /boot/grub

  9. cp /usr/lib/grub/i386-pc/reiserfs_stage1_5 /boot/grub

  10. cat > /boot/grub/menu.lst << "EOF"

  11. default 0

  12. timeout 0

  13. title LFS 6.3

  14. root (hd0,0)

  15. kernel /boot/lfskernel-2.6.22.5 root=/dev/hda1 quiet

  16. EOF

  17. grub

  18. root (hd0,0)

  19. setup (hd0)

  20. quit

# 重新安装启动脚本lfs-bootscripts

  1. make install

# 修改/etc/inittab文件

  1. 1:2345:respawn:/sbin/agetty tty1 9600

  2. 2:2345:respawn:/sbin/agetty tty2 9600

  3. 3:2345:respawn:/sbin/agetty tty3 9600

  4. 4:2345:respawn:/sbin/agetty tty4 9600

  5. 5:2345:respawn:/sbin/agetty tty5 9600

  6. 6:2345:respawn:/sbin/agetty tty6 9600

# 修改/etc/fstab文件

  1. cat > /etc/fstab << "EOF"

  2. # Begin /etc/fstab

  3. # file system mount-point  type   options dump fsck order

  4.   /dev/hda1        /       ext3   defaults       1    1

  5.   /dev/hda2       swap     swap   pri=1          0    0

  6.   proc            /proc    proc   defaults       0    0

  7.   sysfs           /sys     sysfs  defaults       0    0

  8.   devpts          /dev/pts devpts gid=4,mode=620 0    0

  9.   shm             /dev/shm tmpfs  defaults       0    0

  10. # End /etc/fstab

  11. EOF

# 下面的步骤二选一。
# 建立网络接口,采用DHCP服务,可以用默认设置

  1. cat > /etc/sysconfig/network-devices/ifconfig.eth0 << "EOF"

  2. ONBOOT="yes"

  3. SERVICE="dhcpcd"

  4. DHCP_START="-t 20"

  5. DHCP_STOP="-k"

  6. EOF

# 建立网络接口,采用静态IP地址

  1. cd /etc/sysconfig/network-devices

  2. mkdir -v ifconfig.eth0

  3. cat > ifconfig.eth0/ipv4 << "EOF"

  4. ONBOOT=yes

  5. SERVICE=ipv4-static

  6. IP=192.168.1.1

  7. GATEWAY=192.168.1.2

  8. PREFIX=24

  9. BROADCAST=192.168.1.255

  10. EOF

# 修改/etc/resolv.conf,使DNS服务器指向路由器

  1. cat > /etc/resolv.conf << "EOF"

  2. nameserver 192.168.0.254

  3. EOF

# 编辑/etc/sysconfig/network,修改主机名

  1. HOSTNAME=lfs

# 修改root用户的密码

  1. passwd root

#启动ssh

  1. touch .autosshd

# 默认情况下/usr/bin/sudo命令不是setuid程序,用root账户改变
# 此外,还要对/etc/sudoers文件做相应的设置

  1. chmod u+s /usr/bin/sudo
阅读(2604) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:从DVD光盘安装Center OS 6.0的RPM包

给主人留下些什么吧!~~