《鸟哥的Linux私房菜:基础篇》学习笔记 – Lesson03:主机规划与磁盘分区
- 在Linux系统中,每个设备都被当成一个文件来对待,每个设备都会有设备文件名;
-
- IDE硬盘: /dev/hd[a-d]
- SCSI/SATA/USB硬盘: /dev/sd[a-p]
- U盘: /dev/sd[a-p]
- 软驱: /dev/fd[0-1]
- 打印机(25针): /dev/lp[0-2]
- 打印机(USB): /dev/usb/lp[0-15]
- 鼠标(USB): /dev/usb/mouse[0-15]
- 鼠标(PS2): /dev/psaux
- 当前CD/DVD ROM: /dev/cdrom
- 当前鼠标: /dev/mouse
- 磁带机(IDE): /dev/ht0
- 磁带机(SCSI): /dev/st0
- 这里[]里的小标表示支持几个这种设备,例如:IDE硬盘可以支持4块;
- 磁盘连接方式与设备名的关系,以IDE接口来说,由于一个扁平的IDE电缆可以连接两个IDE设备,通常主机会提供两个IDE接口,这两个IDE接口通常称为IDE1(primary)和IDE2(secondary),这两个接口被区分为Master(主设备)与Slave(从设备),因此这两个IDE接口最多可以支持4个IDE设备;
-
- IDE1(Primary)
-
- Master: /dev/hda
- Slave: /dev/hdb
- IDE2(Secondary)
-
- Master: /dev/hdc
- Slave: /dev/hdd
- 再以SATA接口来说,它的设备接口名都是/dev/sd[a-p]的格式,SATA/USB接口的磁盘没有一定的顺序,以Linux内核检测到的顺序(一般系统先加载SATA接口上的设备,开机完成后才去识别USB,这个也可以手动修改);
- Linux操作系统的文件使用目录树系统,与磁盘的对应需要有“挂载”的操作才行;
- 磁盘第一个扇区主要记录了两个重要的信息,分别是:主引导分区(Master Boot Record,MBR)和分区表(Partition Table);MBR用来安装和记录引导加载程序,大小为446byte;分区表用来记录硬盘的分区情况,大小为64byte;
- 硬盘的主分区加扩展分区最多可以有4个,且只能有1个扩展分区,在扩展分区里可以分配若干逻辑分区,逻辑分区的设备文件名号码一定是由5开始(在Windows下由4开始,因为Windows下硬盘的分区从0开始计算);
- 开机的流程:BIOS->MBR->引导加载程序(Boot Loader)->内核文件;
- Boot Loader分别可以安装在MBR和每个分区的引导扇区(Boot Sector);
-
- 例如,你的计算机只有一块硬盘,有2个分区,分别安装了Windows和Linux,那么开机的时候是如何实现选择哪个系统开机的呢?MBR引导加载程序提供两个菜单,M1加载Window,M2指向第二个分区的引导扇区,这里有第二个分区的引导加载程序(Boot Loader)可以加载Linux,这样就实现了多重引导的功能;
- 每个分区都有自己的引导扇区(启动扇区);
- 实际开机的内核文件是放在各分区的;
- Boot Loader只识别自己的系统分区内的可开机的内核文件,以及其他Boot Loader;Boot Loader可以直接或间接指向另一个Loader(我们上面的例子就是这样实现多重系统引导);
- Boot Loader主要有提供菜单,加载内核及转交控制权给其他Loader的功能;
- Linux大致目录树结构:
注意,假如你把Partition1挂载到/,Partition挂载到/home,那么文件夹/home其实并不在/目录的Partition1里,而是在Partition里,这点一定要注意;
- 常用Linux目录含义:
-
- /:根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中;
-
- /bin:/usr/bin:可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等;
-
- /boot:放置linux系统启动时用到的一些文件,/boot/vmlinuz为linux的内核文件,以及/boot/gurb,建议单独分区,分区大小100M即可;
-
- /dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount、/dev/cdrom、/mnt;
-
- /etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份;
-
- /etc/X11:存放与x windows有关的设置;
-
- /home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~test表示用户test的家目录,建议单独分区,并设置较大的磁盘空间,方便用户存放数据;
-
- /lib:/usr/lib:/usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules;
-
- /lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下,如加载硬盘于/disk 中,此目录下就会自动产生目录/disk/lost+found;
-
- /mnt:/media:光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载;
-
- /opt:给主机额外安装软件所摆放的目录,如:FC4使用的Fedora社群开发软件,如果想要自行安装新的KDE桌面软件,可以将该软件安装在该目录下,以前的Linux系统中,习惯放置在/usr/local目录下;
-
- /proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等;
-
- /root:系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下;
-
- /sbin:/usr/sbin:/usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等,与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用;
-
- /tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下;
-
- /srv:服务启动之后需要访问的数据目录(如www服务需要访问的网页数据存放在/srv/www内);
-
- /usr:应用程序存放目录;
-
- /usr/bin:存放应用程序;
-
- /usr/share:存放共享数据;
-
- /usr/lib:存放不能直接运行的,却是许多程序运行所必需的一些函数库文件;
-
- /usr/local:存放软件升级包;
-
- /usr/share/doc:系统说明文件存放目录;
-
- /usr/share/man:程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间;
-
- /var:放置系统执行过程中经常变化的文件(如随时更改的日志文件:/var/log,/var/log/message,所有的登录文件存放目录:/var/spool/mail,邮件存放的目录:/var/run,程序或服务启动后,其PID存放在该目录下);
- Linux常用网络服务:
-
- NAT:路由器功能;
- SAMBA:类似Windows网络邻居功能;
- Mail:邮件服务器;
- Web:WWW服务器;
- DHCP:提供客户端自动获取IP的功能;
- Proxy:代理服务器;
- FTP:网络数据传输服务;