婉兮清扬

案上诗书杯中酒之快意人生

Linux文件系统学习笔记 (1)

发表时间:2008-11-24 10:22:38
打算系统地学习以下Linux上的文件系统,最近可能会根据学习的进度写一些学习笔记。选用的平台是Ubuntu 8.10,参考教材是IBM公司Steve French的演讲稿Linux File Systems in 45 Minutes,同时也参考Veritas公司Tigran Aivazian撰写的Linux Kernel Internals。

准备过程:

0 下载并安装Ubuntu 8.10
1 下载Linux File Systems in 45 Minutes以及相关源代码
2 下载Linux Kernel Internals

Ubuntu 8.10安装完成之后,需要安装一些做Linux内核开发所需要的软件包:

sudo apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev wget libncurses5 libncurses5-dev

然后下载和安装Linux内核源代码:

sudo apt-get install linux-source

然后检查一下你的/usr/bin目录,应当有linux-source-[version number]和 linux-headers-[version number]这样的目录。譬如说我下载安装的内核是2.6.27-7版本的,在我的/usr/bin目录下我看到了三个子目录:linux-header-2.6.27-7,linux-header-2.6.27-7-generic和linux-source-2.6.27。

为了使make程序能够方便地使用同一个特定版本号的内核源代码和头文件,我们在这里需要做一个符号链接:

sudo ln -s linux-headers-2.6.27-7 linux-headers-2.6.27

这样我们做Linux内核开发的环境就准备好了,我们接下来开始编译Linux内核。

sudo cd /usr/src/linux-source-2.6.27
sudo cp /boot/config-$(uname -r) .config && yes "" | make oldconfig
sudo make menuconfig
sudo make-kpkg clean
sudo make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

在上面这条命令中,可以将-custom替换成你所需要的标示符号,譬如-qyjohn-001。需要注意的是,必须保留第一个'-'符号,并且只能够使用小写字母,不能够使用空格。接下来就是漫长的内核编译过程,根据你所使用的计算机配置,你可能需要去喝一杯咖啡,或者是去睡一觉再回来看看。

编译完成之后,在你的/usr/src目录下应该有两个文件,类似于linux-headers-2.6.27.2-custom_2.6.27.2-custom-10.00.Custom_i386.deb和linux-image-2.6.27.2-custom_2.6.27.2-custom-10.00.Custom_i386.deb。我们可以用下面的命令来将刚刚编译好的内核镜像安装到系统上。

sudo dpkg -i linux-headers-2.6.27.2-custom_2.6.27.2-custom-10.00.Custom_i386.deb
sudo dpkg -i linux-image-2.6.27.2-custom_2.6.27.2-custom-10.00.Custom_i386.deb

检查一下/boot/grub/menu.lst,可以看到在启动时可我们能够选择用我们刚刚编译完成的新内核来启动系统了。

sudo shutdown -r now

系统启动之后,检查一下正在运行的内核版本:

uname -r

可以看到类似于下面的信息:

2.6.27.2-custom

现在我们已经完成了Linux内核编译和部署的过程。接下来就可以开始学习文件系统的部分了。
上一篇 下一篇

发表时间:2009-09-16 13:39:29    评论者:三峡游船

看上去会挺复杂的样子~不过哦还是谢谢分享了!

 
姓名:
评论:

请输入下面这首诗词的作者姓名。

单车欲问边,属国过居延。
征蓬出汉塞,归雁入胡天。
大漠孤烟直,长河落日圆。
萧关逢候骑,都护在燕然。

答案:

云与清风常拥有,
冰雪知音世难求。
击节纵歌相对笑,
案上诗书杯中酒。

蒋清野
2000.12.31 于 洛杉矶