根分区/:根分区即根目录(/)所在的分区。它只需要启动系统所必需的文件(如内核文件)和系统配置文件,大多数系统50MB到100MB的根分区可以工作得很好。
/usr分区:/usr是存放Red Hat Linux系统的许多软件(如X Windows系统)的所在的分区。根据你要安装的RPM软件包的数量,这个分区一般在300MB到700MB之间,如果可能,将最大的空间用于/usr分区。
/home分区:用来存放用户的个人数据的分区。它的大小取决于Red Hat Linux系统有多少用户,以及这些用户将存放多少数据。
交换分区:交换分区用来负责系统的数据交换,相当于DOS/Windows下的虚拟内存,当内存不够用时,系统就会把暂时的程序数据在交换分区上存取。在Red Hat Linux下,交换分区是必需的,不管你的内存有多大,即使你有128MB的内存,也需要至少一个交换分区。
普通用户,不是有特殊需求的,用这几个分区安装,就可以保证系统性能了。另外,用户的使用环境可能会要求创建一个和多个以下的分区:
/usr/local分区:一般来说,/usr/local用来存放与Red Hat Linux系统不同的软件,例如,不是RPM包的软件,而是TGZ或TAR的软件包。其空间的大小取决于准备存放的这些软件的数量。
/usr/src分区:在一个Red Hat Linux系统中,/usr/src通常存放两样东西:一个是内核的源代码,Linux的所有源代码都放在这里,新的内核也在这里创建。目前,内核源代码大约占50MB的空间。当你需要更多的空间来创建内核时,或者要保存几个不同版本的内核的时候,就要考虑加大该分区的空间。另一个是RPM包的源程序,如果安装了包的源程序,文件将存放在这里。这个分区的大小也取决于将在这里安装的软件包的数量。
/tmp分区:/tmp分区用来存放临时文件。对于一个大型的、多用户的系统或者网络服务器,专门创建一个/tmp分区是一个好主意。对于一个专门的工作站,就不必专门创建一个/tmp分区了。
/var分区:Red Hat Linux系统将把日志写在/var/log。打印队列的文件通常写在/var/spool。除非特别配置,/var将是根文件系统的一部分,通常不占很多空间。如果系统有很多打印任务、邮件或者日志,可以考虑专门创建一个/var分区。一般来讲,只有多用户或者服务器才需要专门的/var分区。
/boot分区:这里提到的分区多数是针对大的系统,这个分区则对空间很少的小系统很有用。所有LILO启动时需要的文件都在/boot目录里,因为/boot中的这些文件(包括Linux内核)占1MB空间,如果很难为LILO要用的根分区安排100MB空间,可以幸运地只用5-10MB的分区来存放/boot,但仍然需要创建一个根分区,这时,它可以在系统的任何地方(受BIOS的限制)使用含有/boot的分区。
下面是系统的主要配置文件:
1:/etc/sysconfig/i18n(语言配置文件).
2:/etc/sysconfig/network-scripts/ifcfg-eth0(eth0配置文件).
3:/boot/grub/grub.conf(grup配置文件) 或/boot/grub/menu.list.
4:/etc/passwd:系统用户数据库文件.
5:/etc/group:组的数据库文件.
6:/etc/gshadow(存放密码).
7:/etc/shadow(存放密码).
8:/etc/profile(系统环境).
9:/etc/bashrc(系统变量).
10:/etc/shells(存放shell).
11:/etc/sudoers(sudo配置文件).
12:/etc/inittab(设置启动级别).
13:/etc/rc.d/rc.local系统启动是执行的文件类似于windows的autoexec.bat).
14HOME/Xclients(控制启动x客户端).
15:/etc/X11/Xinit/xinitrc.d/xinput(启动x-windows的加载程序配置文件).
16:/etc/fstab(文件系统格式表).
17:/var/log/(存放日志目录).
18:/var/spool/at/(存放at时间任务的目录).
19:/etc/at.deny(禁止时间任务,针对用户).
20:/etc/at.allow( 允许时间任务,针对用户).
21:/etc/crontab(crontab配置文件).
22:/etc/anacrontab(anacrontab配置文件).
23:/etc/moudle.conf(网卡,声卡,usb的模块).
24:/etc/protocols(协议).
25:/etc/services(端口).
26:/etc/dhcpd.conf(DHCP配置文件,默任不存在).
27:/var/lib/dhcp/dhcpd.leases(查看哪个用户,使用你的dhcp服务器).
29:/etc/hosts 或者 /etc/sysconfig/network(修改主机名).
30:/etc/named.conf(DNS主配置文件).
31:/etc/host.conf(解晰主机时用host表还是dns).
32:/etc/resolv.conf(指定dns服务器ip).
33:/etc/httpd/conf/httpd.conf(apache配置文件)
34:/etc/mail/(sendmail目录).
35:/etc/aliases(别名配置文件).
36:/etc/samba/smb.conf(smb配置文件).
37:/etc/proftpd.conf(ftp配置文件).
38:/etc/squid/squid.conf(squid配置文件).
39:/etc/pam.d/su(限制用户使用su).
40:/etc/secruetty(限制根用户直接登陆终端).
41:/etc/secrrity/access.conf(限制某用户登陆).
42:/etc/nologin(限制所有用户登陆).
43:/etc/sudoers(强制用户每次使用sudo输入密码).
44:/etc/security/time.conf(限制用户登陆系统时间).
45:/etc/hosts.allow
46:/etc/hosts.deny
47:/etc/issue(登陆提示)
48:/etc/issue.net(远程登陆提示).
49:/etc/motd(输入用户名和密码后看到的内容).
50:/etc/login.defs(生成新用户,基本参数).
51:/etc/logrotate.conf(日志文件各级的选项).
52:/proc/sys/net/ipv4/ip_forward(即使路由功能打开).
53:/etc/sysctl.conf(永久打开路由功能).
54:/proc/sys/net/ipv4/icmp_echo_igore_all(是否允许ping).
55:/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts(广播ping).
定制x86的linux
linux2.4内核的 编译流程大致如下(linux2.6过程简化,linux2.4内核理解制作x86的linux更清楚)
#make dep
#make clean
#make bzImage或make zImage
#make modules
#make modules_install
#depmod -a
第一个命令make dep实际上读取配置过程生成的配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编译而那些不需要;第二命令make clean完成删除前面步骤留下的文件,以避免出现一些错误;make zImage和make bzImage则实现完全编译内核,二者生成的内核都是使用gzip压缩的,只要使用一个就够了,它们的区别在于使用make bzImage可以生成大一点的内核。建议大家使用make bzImage命令。
后面三个命令只有在你进行配置的过程中,在回答Enable loadable module support (CONFIG_MODULES)时选了”Yes”才是必要的,make modules和make modules_install分别生成相应的模块和把模块拷贝到需要的目录中。
严格说来,depmod -a命令和编译过程并没有关系,它是生成模块间的依赖关系,这样你启动新内核之后,使用modprobe命令加载模块时就能正确地定位模块。
更新
经过以上的步骤,我们终于得到了新版本的内核。为了能够使用新版本的内核,我们还需要做一些改动:
#cp /usr/src/linux/System.map /boot/System.map-2.4.18
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.4.18
以上这两个文件是我们刚才编译时新生成的。下面修改/boot下的两个链接System.map和vmlinuz,使其指向新内核的文件:
#cd /boot;rm -f System.map vmlinuz
#ln -s vmlinuz-2.4.18 vmlinuz
#ln -s System.map-2.4.18 System.map
修改启动管理器
如果用LILO,修改/etc/lilo.conf,添加以下项:
image=/boot/vmlinuz-2.4.18
label=linux240
read-only
root=/dev/hda2
其中root=/dev/hda2一行要根据需要自行加以修改。
运行:
#/sbin/lilo -v
确认对/etc/lilo.conf的编辑无误,现在重新启动系统:
#shutdown -r now
如果是用Grub启动管理器,则添加如下几项即可。
title Red Hat linux (2.4.18)
root (hd0,0)
kernel /vmlinuz-2.4.18 ro root=/dev/hda2
Grub不需再次调用命令,自动生效。
重启以后就可以用新内核了。
X86下的linux启动需要的东西
从上面的编译完成后的软链接,看出系统启动需要/boot目录下的system.map和vmlinuxz两个文件,这只是系统的 内核,文件系统则是initrd.img