我希望自己的LFS运行在U盘上,远期目标是要制作一个基于LFS的编程练习U盘,方便自己的编程练习。今天算是工作的第一步,先把LFS做到U盘上。

把Linux做到U盘上通常的做法是采用两步启动法:先生成initrd文件,系统启动的时候是先在内存中启动一个小型系统,再把控制权交给U盘上的根系统。我不喜欢这种做法----虽然这种做法的好处很多----而且我觉得制作initrd文件、编译busybox等比较麻烦。我希望自己U盘上的LFS能够一步启动,这就需要打个补丁。今天试了一下,成功,记录于下,供大家参考,也为自己以后查看方便。

1 我是在Sarge下制作LFS6.1.1成功。

2 在Sarge主系统打开一个终端,下载下面这个针对USB启动Linux的、内核为2.6版本的补丁:
http://dedasys.com/freesoftware/patc...v_wakeup.patch
并把这个补丁复制到LFS下的sources目录之中。

3 在Sarge系统下再打开一个终端,chroot进入自己的LFS。

4 在LFS下解压kernel2.6.11.12的源码,进入linux-2.6.11.12的源码目录当中先打补丁:
#cd sources
#tar jxvf linux-2.6.11.12.tar.bz2
#cd linux-2.6.11.12
#patch –Np1 –i ../blkdev_wakeup.patch

5 然后就是常规的内核编译了。注意选上那些SCSI的东西。但是我没有选择支持模块,我好象不需要。比如说网卡吧,我能用到的电脑都是8139,我就把它直接编译进内核了。
#make mrproper
#make menuconfig
#make

6 把我的128M的U盘分区:
#fdisk /dev/sda
我把前面100M作为根目录,后面20几M作为交换分区,注意/dev/sda1设置为可启动的。

7 格式化U盘:
#mke2fs /dev/sda1
#mkswap /dev/sda2

8 拷贝grub文件(无论是Sarge主系统还是LFS系统的都可以)
# mount /dev/sda1 /theDirYouLike (后者是指你挂载U盘第一个分区的目录)
#cp –R /boot /theDirYouLike
然后把里面原先的内核删除

9 启动grub以使U盘能由grub引导:
# grub
grub> root(hd1,0)
grub> setup (hd1) (注意以上都是hd1代表U盘)
grub> quit

10 拷贝内核到U盘:
#cp $LFS/sources/linux-2.6.11.12/arch/i386/boot/bzImage /theDirYouLike/vmlinuz

11 编辑你的U盘上的grub配置文件:
#nano /theDirYouLike/boot/grub/menu.lst
文件内容为:
default 0
timeout 10
title LFS on USB
kernel=(hd0,0)/vmlinuz
root=/dev/sda1

12 复制LFS的除boot proc sys外的其他目录和文件文件----当然,我已经把自己的LFS删减到100M以下:
#cp –R {etc,var,usr ……} /theDirYouLike

记得退出前要 
# umount /theDirYouLike

好了,现在你可以启动U盘上面的LFS了。

U制作LFS linux的更多相关文章

  1. LFS(Linux From Scratch)学习

    一.简介 LFS──Linux from Scratch,就是一种从网上直接下载源码,从头编译LINUX的安装方式.它不是发行版,只是一个菜谱,告诉你到哪里去买菜(下载源码),怎么把这些生东西( ra ...

  2. LFS Linux From Scratch 笔记(经验非教程)

    做了一个自己的DIY Linux系统.从编译每一行代码,建立每一个文件系统结构开始. 创造自己的GNU/Linux系统,不同于任何发行版.按照的教程是来自 linuxfromscratch.org 来 ...

  3. 制作嵌入式linux文件系统(ramdisk,cramfs,squashfs)

    转:http://blog.csdn.net/zyb19831212/article/details/1887930 一.什么是文件系统 (Filesystem): A directory struc ...

  4. 制作 OpenStack Linux 镜像 - 每天5分钟玩转 OpenStack(151)

    这是 OpenStack 实施经验分享系列的第 1 篇. OpenStack 的 instance 是通过 Glance 镜像部署的,所以准备镜像是必须要做的工作.本节介绍 Linux 镜像的制作方法 ...

  5. bash编程之 ~制作Mini Linux系统~

    说明1:在一个Linux宿主机系统上,通过以上步骤,可以制作一个微小的Linux系统(可以放置在U盘中等),然后在其它的主机(虚拟机或者物理机)上运行,以实现最小化定制系统的目的. 说明2:上图中黑色 ...

  6. 「Linux」制作一个Linux系统

    一.前言 Linux操作系统至1991年10月5日诞生以来,就其开源性和自由性得到了很多技术大牛的青睐,每个Linux爱好者都为其贡献了自己的一份力,不管是在Linux内核还是开源软件等方面,都为我们 ...

  7. LFS Linux From Scratch 笔记2(经验非教程)BLFS

    LFS 完了. 其实还没完,还要装一些其他的组件,系统才算是对人类有用的系统. 正好这里有个BLFS Beyound Linux From Scratch 的教程. 其实,按照现有的可运行的LFS系统 ...

  8. 制作嵌入式linux内核

    拿到一个嵌入式linux内核代码,首先make distclean 接下来,如果在x86平台,就直接make menuconfig,如果是在ARM平台,就直接make menuconfig ARCH= ...

  9. 制作安装Linux操作系统的启动U盘方法其实就这么简单

    安装系统前,我们需要制作系统安装启动U盘(或者DVD,但已经很少使用DVD,所以不再介绍),通过启动U盘来帮助我们安装下载好的Linux系统. 接下来我们来介绍在Windows.Linux和MacOS ...

随机推荐

  1. 粵語/廣東話/Cantonese 資料/Material

    一.粵語歌詞網 1.海闊天空(粵語) 歌詞 今天我 寒夜裡看雪飄過 gam1 tin1 ngo5 hon4 je6 leoi5 hon3 syut3 piu1 gwo3 懷著冷卻了的心窩漂遠方 waa ...

  2. 链表C++模板实现

    #include <iostream.h> #include <stdlib.h> //结点模板类 template <typename t1, typename t2& ...

  3. SharePoint Client Add Folder,file to Library

    public void UploadDocument(string siteURL, string documentListName, string documentListURL, string d ...

  4. git 使用事项

    基本安装可查看 http://help.github.com 如果删除了本地的文件,要恢复相关文件,在github存在(别人增加的),则:git pull <远程主机名> <远程分支 ...

  5. 为什么a标签中使用img后的高度多了几个像素?

    a元素下有一个匿名文本,这个文本外有一个匿名行级盒子,它有的默认vertical-align是baseline的,而且往往因为上文line-height的影响,使它有个line-height,从而使其 ...

  6. Javascript 计算分页

    var getPageData = function (last_page, current_page) { var numberLinks = []; var i = 0; for (i; i &l ...

  7. 【5】了解Bootstrap预置的栅格系统

    在开篇之前我们来说2个class,因为以后要用到的 <div class="container"> ... </div> 用.container包裹页面上的 ...

  8. Silverlight应用程序中调用WCF Ria Services访问数据库图片

    WCF Ria Services(通常称为RIA服务),专门设计让Silverlight应用程序访问数据库,网上有关其示例应用都是基于简单的数据显示,其中MSDN网站上有详细的解决方案介绍,地址htt ...

  9. T[]与List<T>的使用时机

    所有的数组类型都隐式地从System.Array这个抽象类派生,而System.Array又派生自System.Object.也就是说数组是引用类型.通过如下方式创建数组: int[] arrInt ...

  10. 软件测试 -- Bug等级划分规范

    1. Blocker级别——中断缺陷 客户端程序无响应,无法执行下一步操作. 2. Critical级别――临界缺陷,包括: 功能点缺失,客户端爆页. 3. Major级别——较严重缺陷,包括: 功能 ...