使用 linux 已经好多年了,一直处于使用状态,最近想用它来学习一下写驱动程序,于是就发生了一些问题。
首先就是如何建立内核树,其方法在网上有很多介绍,大家可以参考下面的文章:
http://blog.csdn.net/ypoflyer/archive/2010/12/20/6087668.aspx
下面说说我的问题吧,主要的就是内核编译时耗尽了系统的硬盘空间。
我的系统 ubuntu10.04
我的硬盘结构如下:
/boot 100MB
/ 18GB
其他的硬盘都是 NTFS 格式的,为了与 windows 兼容。
在没有编译内核前 挂载点 “/” 下的空间还有 6.5GB,可是在 内核编译完成后空间就几乎耗尽了。
当时心情之沮丧就不必说了。。。。。。
最后实在没辙了,一狠心,决定把 windows 下的一个 8GB的 NTFS 硬盘划分给 linux,作为 “/usr”。
其操作方法如下:
1. 清空目标盘(主要是移动要保存的重要文件);
2. 在 linux 下安装 gparted 用于分区,其操作方法与 windows下的 partitionmagic 类似;
3. 操作 gparted, 将目标盘格式化成 ext4 格式(根据系统而定,可能有些系统只兼容 ext3或者 ext2);
4. 用 #sudo fdisk -l 命令查看刚刚建立的磁盘的设备节点,我的是 sda7,并将其挂载到自己建立的文件夹上,命令如下:
$mount -t ext4 /usr1 /dev/sda7
5. copy /usr 下的文件到 /usr1 下面,命令如下:
$cp -a /usr/* /usr1/
以上命令一定要使用参数 -a,以保证复制的文件保持原有的权限和一些链接文件
6. 查看新建磁盘的 UUID, 命令如下:
$ls -l /dev/disk/by-uuid/
得到信息如下:
lrwxrwxrwx 1 root root 10 2011-01-08 14:479ecf295d-ba7f-467d-b962-3a04f3392e4c -> ../../sda7
7. 编辑 /etc/fstab 文件,增加如下信息:
# /usr was on /dev/sda7 by 2011-1-6 night UUID=9ecf295d-ba7f-467d-b962-3a04f3392e4c /usr ext4 errors=remount-ro 0 1
8. 在挂载点 “/” 下重建空的 usr文件夹,命令如下:
$mv /usr /usr2
$mkdir /usr
9. 好了,现在我们的空间移动大计就完成了,
不过值得注意的是 第 7,8步骤最好在 recovery mode下进行,否则可能会影响到 开机时grub 的中文显示。