我希望自己的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. 给div设置一个关闭按钮.

    造轮子好难. 用惯了框架提供的组件,某天自己要做个伪组件(或者在他人创建的页面效果上添加新功能)会发现很难. 所以,碰到了,就一定要做下记录.以供日后查阅. 如图,弹出DIV右上角的关闭按钮是我此次添 ...

  2. JSTL 入门

    JSTL--JSP Standard Tag Library--JSP标准标签函式库         当前版本 1.2.5     JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个J ...

  3. WPF设置窗口模式(Windowstyle=“None”)

    当WindowStyle="None"时,设置AllowsTransparency="True",则不会出现黑色Border,然后可以另外设置外边的Border ...

  4. [leetcode] 407. Trapping Rain Water II

    https://leetcode.com/contest/6/problems/trapping-rain-water-ii/ 看到这题,我很高兴,因为我做过!哈哈!其实我现在也写不出来,知道大概思想 ...

  5. mysql密码忘记后重置密码

    之前在centOS里安装了xampp,设置了mysql数据库root密码,今天需要增加个数据库,发现忘记之前设置的密码是什么了.经过一番摸爬滚打,终于搞明白了,注意以下的操作都是以linux的root ...

  6. JDBC-ODBC桥接访问SQLServer2008数据库

    来源:十二随风博客 将对JDBC API的调用,转换为对另一组数据库连接API的调用优点:可以访问所有ODBC可以访问的数据库缺点:执行效率低.功能不够强大 (1)建立数据源,注意系统DNS才行,用户 ...

  7. AD,Group

    DataTable dtUser = GetEmptyDT(); Dictionary<DirectoryEntry, string> test1 = GetUserAndGroup(cl ...

  8. 本地化web开发的一个例子-jquery.i18n.properties

    关键字:Web本地化, jquery,jquery.i18n.properties. 运行环境:Chrome, IE. 本文介绍使用jquery.i18n.properties对网站前端实现本地化,支 ...

  9. The partner transaction manager has disabled its support for remote/network transactions.

    http://technet.microsoft.com/en-us/library/cc753510(WS.10).aspx

  10. Docker容器中运行ASP.NET Core

    在Linux和Windows的Docker容器中运行ASP.NET Core 译者序:其实过去这周我都在研究这方面的内容,结果周末有事没有来得及总结为文章,Scott Hanselman就捷足先登了. ...