我希望自己的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. [翻译]log4net教程

    原文:log4net Tutorial 一.基础: log4net分为三部分:配置.设置和调用.配置通常是在app.webconfig或web.config文件中:为了增加灵活性,我们也可以使用单独的 ...

  2. iOS 简单理解类的本质

    1.类也是个对象 类是一个对象是Class类型的对象简称类对象 Class类型的定义 // 一个任意的类型,表示一个Objective-C类 typedef struct objc_class *Cl ...

  3. 把URL传递参数转变成自定义实体方法

    先定义下要获取的实体: public class InputClass { public long Id { get; set; } public int Status { get; set; } p ...

  4. Unable to make the session state request to the session state server处理方法

    Server Error in '/' Application. Unable to make the session state request to the session state serve ...

  5. MVC文件上传-使用jQuery.FileUpload和Backload组件实现文件上传

    本篇使用客户端jQuery-File-Upload插件和服务端Badkload组件实现多文件异步上传.MVC文件上传相关兄弟篇: 处理文件上传的服务端组件Backload 用于处理文件上传的服务端组件 ...

  6. const用法

    一.const作用 二.const用法 1.修饰一般常量   修饰符const可以用在类型说明符前,也可以用在类型说明符后. 例如: ; ; 2.修饰常数组  修饰符const可以用在类型说明符前,也 ...

  7. 【Druid】 阿里巴巴推出的国产数据库连接池com.alibaba.druid.pool.DruidDataSource

    阿里巴巴推出的国产数据库连接池,据网上测试对比,比目前的DBCP或C3P0数据库连接池性能更好   简单使用介绍 Druid与其他数据库连接池使用方法基本一样(与DBCP非常相似),将数据库的连接信息 ...

  8. 一步步学习ASP.NET MVC3 (11)——@Ajax,JavaScriptResult(2)

    请注明转载地址:http://www.cnblogs.com/arhat 今天在补一章吧,由于明天的事可能比较多,老魏可能顾不上了,所以今天就再加把劲在写一章吧.否则对不起大家了,大家看的比较快,可是 ...

  9. 一步步学习ASP.NET MVC3 (13)——HTML辅助方法

    请注明转载地址:http://www.cnblogs.com/arhat 今天老魏是在十分郁闷,我的一个U盘丢了,心疼里面的资料啊,全部是老魏辛辛苦苦积攒的Linux资料,太心疼,到现在心情还不是很爽 ...

  10. 制作标签(Label)

    怎样判断是否应当使用标签 当游戏中出现需要程序输出文字的地方,就要使用标签. 创建标签 在Unity顶部选择NGUI菜单.选择Create->Label,即可创建一个Label. Label的文 ...