文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>01.分区准备

01.分区准备

时间:2006-11-17  来源:anima

构建LFS-6.2


宿主系统:

CentOS 4.4

[root@fish ~]# uname -r

2.6.9-42.0.3.EL

构建者:anima

构建始于:2006-11-12



一、分区准备:

1、查看磁盘分区情况:


[root@fish ~]# /sbin/sfdisk -l /dev/hda


Disk /dev/hda: 158816 cylinders, 16 heads, 63 sectors/track

Warning: extended partition does not start at a cylinder boundary.

DOS and Linux will interpret the contents differently.

Warning: The partition table looks like it was made

for C/H/S=*/255/63 (instead of 158816/16/63).

For this listing I'll assume that geometry.

Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0


Device Boot Start End #cyls #blocks Id System

/dev/hda1 * 0+ 652 653- 5245191 7 HPFS/NTFS

/dev/hda2 653 8513 7861 63143482+ f W95 Ext'd (LBA)

/dev/hda3 8514 9963 1450 11647125 8e Linux LVM

/dev/hda4 0 - 0 0 0 Empty

/dev/hda5 653+ 1305 653- 5245191 c W95 FAT32 (LBA)

/dev/hda6 1306+ 3264 1959- 15735636 7 HPFS/NTFS

start: (c,h,s) expected (1023,254,63) found (1023,1,63)

/dev/hda7 3265+ 5875 2611- 20972826 7 HPFS/NTFS

start: (c,h,s) expected (1023,254,63) found (1023,1,63)

/dev/hda8 5876+ 7181 1306- 10490413+ c W95 FAT32 (LBA)

start: (c,h,s) expected (1023,254,63) found (1023,1,63)

/dev/hda9 7182+ 8487 1306- 10490413+ 83 Linux

start: (c,h,s) expected (1023,254,63) found (1023,1,63)

/dev/hda10 8488+ 8513 26- 208813+ 83 Linux

start: (c,h,s) expected (1023,254,63) found (1023,1,63)

[root@fish ~]#


(分区有点问题)

决定把LFS安装在/dev/hda9。



2、Configure 脚本的问题

如果执行 configure 脚本的时候,某个地方出错了,请检查 config.log 文件,这个文件可能包含 configure 过程中没有输出到屏幕的错误,如果您需要请求帮助,请把这里面相关信息也包含进去。


3、准备一个新分区

为 LFS 系统准备一个分区。步骤是创建一个新的磁盘分区并在这个分区上创建文件系统,然后挂载它。

像大多数其他操作系统一样,LFS 通常安装在一个新的专用分区上。

建立一个最小的系统需要 1.3GB 左右的分区,这样才能有足够的空间存储并编译所有的源码包。当然,如果您打算把 LFS 作为您的主 Linux 系统,您可能会在上面安装其它软件,那么您就需要更大的空间(2~3GB)。LFS 系统本身并不占用这么多空间,所需的空间大部分用来为软件编译提供足够的临时空间,编译软件包的时候需要使用大量的临时空间,软件包装好之后这些临时空间可以回收。


因为编译过程中内存(RAM)并不总是够用的,所以最好使用一个小的硬盘分区作为交换空间。内核使用交换空间来存放不常用到的数据,以便为正在运行的进程腾出内存空间。LFS 系统使用的交换分区与宿主系统使用的交换分区可以是同一个,因此当宿主系统已经有交换分区的时候就不必为 LFS 系统再创建一个了。


启动一个磁盘分区程序,例如 cfdisk 或者 fdisk ,用即将在上面创建新分区的硬盘名字作为命令行选项,比如主IDE硬盘名字就是 /dev/hda 。创建一个 Linux 本地分区,需要的话,还要创建一个交换分区。如果还不知道如何使用这两个工具,参考 cfdisk(8) 或者 fdisk(8) 手册页。


记住新分区的名称(比如 hda5),交换分区的名称也要记住,这些分区的名称以后将在 /etc/fstab 文件中用到。


在新分区上创建文件系统:

空白分区建立之后,现在可以在上面创建文件系统了。

要在 LFS 分区上创建 ext3 文件系统,请运行下面的命令:

mke2fs -jv /dev/<xxx>

用您创建的 LFS 分区的名称替换 <xxx> (如 hda5)。



有些宿主系统在文件系统创建工具(E2fsprogs)中使用了自定义的增强特性。这可能会导致在重启进入新的 LFS 系统时出现问题。因为这些特性并不被 LFS 安装的 E2fsprogs 支持,将会得到一个类似于"unsupported filesystem features, upgrade your e2fsprogs"的错误。可以使用下面的命令来检查宿主系统是否使用了自定义的增强特性:

[root@fish ~]# /sbin/debugfs -R feature /dev/hda9

debugfs 1.35 (28-Feb-2004)

Filesystem features: has_journal ext_attr resize_inode filetype needs_recovery sparse_super large_file


如果输出的特性不同于:has_joural, dir_index, filetype, large_file, resize_inode, sparse_super 或 needs_recovery , 那么就说明宿主系统使用了自定义的增强特性。在这种情况下,为了避免后面的问题,需重新编译 E2fsprogs 包,然后用这个重新编译过的工具来创建将要用来安装 LFS 系统的文件系统:

cd /tmp

tar -xjvf /path/to/sources/e2fsprogs-1.39.tar.bz2

cd e2fsprogs-1.39

mkdir -v build

cd build

../configure

make #note that we intentionally don't 'make install' here!

./misc/mke2fs -jv /dev/<xxx>

cd /tmp

rm -rfv e2fsprogs-1.39

如果创建了交换分区,那么还需要用下面的命令进行格式化,如果使用已有的交换分区,那么就不需要格式化了。

mkswap /dev/<yyy>

用创建的交换分区的名称替换 <yyy> 。



[root@fish lfs-packages-6.2]# /sbin/mkfs.ext3 -j /dev/hda9

mke2fs 1.35 (28-Feb-2004)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

1311552 inodes, 2622603 blocks

131130 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=2688548864

81 block groups

32768 blocks per group, 32768 fragments per group

16192 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632


Writing inode tables: done

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done


This filesystem will be automatically checked every 25 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

[root@fish lfs-packages-6.2]# /sbin/debugfs -R feature /dev/hda9

debugfs 1.35 (28-Feb-2004)

Filesystem features: has_journal resize_inode filetype sparse_super large_file

[root@fish lfs-packages-6.2]# tar zxvf e2fsprogs-1.39.tar.gz

[root@fish lfs-packages-6.2]# cd e2fsprogs-1.39

[root@fish e2fsprogs-1.39]# mkdir -v build

[root@fish e2fsprogs-1.39]# cd build/

[root@fish build]# ../configure

[root@fish build]# make

[root@fish build]# ./misc/mke2fs -jv /dev/hda9

mke2fs 1.39 (29-May-2006)

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

1311744 inodes, 10490412 blocks

524520 blocks (5.00%) reserved for the super user

First data block=1

1281 block groups

8192 blocks per group, 8192 fragments per group

1024 inodes per group

Superblock backups stored on blocks:

8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553,

1024001, 1990657, 2809857, 5120001, 5971969


Writing inode tables: done

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done


This filesystem will be automatically checked every 39 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

[root@fish build]# cd ../../

[root@fish lfs-packages-6.2]# rm -fR e2fsprogs-1.39

[root@fish lfs-packages-6.2]#



4、挂载新分区

创建文件系统之后,要让分区可以访问,需要把分区挂载到一个选定的挂载点上。假定文件系统挂载到 /mnt/lfs ,也可以选择别的目录。

选定一个挂载点,并指定给 LFS 环境变量,运行命令:

export LFS=/mnt/lfs

下一步,创建这个挂载点,并挂载 LFS 文件系统,运行命令:

mkdir -pv $LFS

mount -v -t ext3 /dev/<xxx> $LFS

用创建的 LFS 分区名称替换 <xxx> 。


如果 LFS 装在多个分区上(比如一个分区用于 / 目录,另一个分区用于 /usr 目录),用下面的命令挂载它们:

mkdir -pv $LFS

mount -v -t ext3 /dev/<xxx> $LFS

mkdir -v $LFS/usr

mount -v -t ext3 /dev/<yyy> $LFS/usr

用相应的分区名称替换 <xxx> 和 <yyy> 。


请确认挂载新分区的时候没有使用太多的限制选项(如 nosuid, nodev, noatime 选项)。运行不带参数的 mount 命令看看挂载的 LFS 分区设置了什么选项,如果出现了 nosuid, nodev, noatime 选项之一,您就需要重新挂载这个分区。


[root@fish lfs-packages-6.2]# export LFS=/mnt/lfs

[root@fish lfs-packages-6.2]# mkdir -pv $LFS

mkdir: 已创建目录 ‘/mnt/lfs’

[root@fish lfs-packages-6.2]# mount -v -t ext3 /dev/hda9 $LFS

/dev/hda9 on /mnt/lfs type ext3 (rw)


如果使用了交换分区,可以使用下述 swapon 命令确保它被启用了:

/sbin/swapon -v /dev/<zzz>

将 <zzz> 替换为正确的交换分区名。


现在工作的空间已经建立好了。



5.关于环境变量 $LFS

环境变量 LFS 的使用贯穿全书。保持 LFS 总是已定义是很重要的,它应该被设置为 LFS 分区的挂载点。用下面的命令检查它的设置是否恰当:

echo $LFS

请确认输出的是 LFS 分区挂载点的路径,如果您遵循我们的例子,则应该是 /mnt/lfs 。如果输出结果不正确,用下述命令设置它:

export LFS=/mnt/lfs

设置这个环境变量的好处是您以后可以按照原样输入形如 mkdir $LFS/tools 的命令,当 shell 处理这个命令行的时候,会自动用"/mnt/lfs"(或者该环境变量所设定的值)替换"$LFS" 。

当您离开然后重新进入当前工作环境的时候(像 su 到 root 或者其他用户),不要忘记检查 $LFS 是否设置正确。






相关阅读 更多 +
排行榜 更多 +
激萌手账

激萌手账

游戏工具 下载
躺平不要慌

躺平不要慌

音乐节奏 下载
嗨自拍修图

嗨自拍修图

图像拍照 下载