linux 分区理解

2/13/2017来源:经验技巧人气:1885

关于linux硬盘和分区的理解

 所用环境为RedHat EnterPRise 5

1.文件系统布局

①/bin、/sbin、/lib、/dev、与/etc这5个分区必须存放于根文件系统(Root Filesystem)中.

所谓根文件系统就是存储根目录数据的文件系统,有时又称根设备。

/bin:存储常用且开机时必须用到的执行文件。

/sbin:存储着开机过程中所需的系统执行文件

※/lib:存储/bin、/sbin的执行文件所需的链接库,以及linux内核模块。

/dec:存储设备文件

/etc:存储重要的配置文件,比如各种服务的启动时的配置文件

这样就是为什么grub.conf中开机三巨头中有一句

kernel  /VMlinuxz-2.6.18-8.el5   ro   root=LABEL=/  rlgb  quiet

                           以只读方式挂在根文件系统  

根文件系统之所以在前面加一个”根“,说明它是加载其它文件系统的”根“,既然是根的话,那么如果没有这个根,其它的文件系统也就没有办法进行加载的。它包含系统引导和使其他文件系统得以挂载(mount)所必要的文件。

②/boot分区最好建在磁盘的第一个分区中,并且最好不要建立于LVM的逻辑卷上。

But 在FreeBSD中不要设置/boot  分区,这样会造成无法启动。

③如果不知道建多大的交换内存,则建立一个物理内存两倍大的SWAP。

PS:如果要架设因特网的服务器,则/var分区分的大一些。如果做桌面系统则,/home分区大一些。如果打算多装些软件,那么/usr能多大就多大。

2.分区

一、硬盘的组成(一个硬盘有若干张磁盘(Disk)构成):

①磁面:每一张磁盘的表面,称为磁面(Head)

②磁道:每一个磁面的空间,会逻辑地切割出许多磁道(Track)

③扇区:每一个磁道可以再切割出若干扇区(Sector),也是调用磁盘的最小单位。现今磁盘中的扇区的默认大小为512字节。

④柱面:一个硬盘有多个磁盘,n个磁盘上同一编号的磁道就组成一个柱面(Cylinder)

二、主引导扇区(引导扇区在每个分区里都存在,*主引导扇区*是硬盘的第一物理扇区。)

(PS: 备份主引导扇区:dd  if=file_name  of=/devsda1  bs=512  count=1

       还原主引导扇区:dd  if=/dev/sda1  of=file_name  bs=512  conut=1  )

整张磁盘的第0号柱面的第0号磁面的第0号扇区就是主引导扇区。

|<-----------------512Bytes--------->|

初始化程序加载器

446Bytes

分区数据表

64字节

检验码2

  446+64+2=512主引导扇区,主引导记录MBR(Main Boot Record)和分区表DPT(Disk Partition Table)和验证码

初始化程序加载器(主引导记录):用来存储操作系统的内核(只是内核的一部分,起到引导内核加载)

分区数据表:存储磁盘的分区信息。由于每一个分区都会占用16个字节,所以只能分4个主分区。(哈哈,这就是分区只能有四个的原因啦,详见《鸟哥的私房菜》)

验证码:用来存放初始化程序加载器的验证码。

三、分区 细节 (分区后可以用partprobe  或partx + 设备名来跟新分区表)

①分区系统标识符

81---->linux的第一代ext

82---->swap空间

83---->ext2与ext3

8e--->LVM使用的分区

fd---->软件磁盘列阵的分区

5---->系统标识为5的扩展分区----最多只能存储12个逻辑分区的信息

85---->系统标识为85的扩展分区

IDE磁盘最多只能存储60个逻辑分区的信息

SCSI磁盘最多只能存储12个逻辑分区的信息

/etc/fstab  开机自动挂载文件.<-------/etc/mtab是它的备份配置文件

由于RedHat关机的最后一步包括卸载所有已挂载的文件系统。所以/etc/fstab就应运而生了。

磁盘设备名      挂载点   分区文件系统  文统参数  是否被dump   是否fsck检验扇区

LABEL=/         /          ext3      defaults            1            1

LABEL=/boot    /boot        ext3      defaults            1            2

这是正常挂载分区卷标名、挂载点 、文件系统、和其他参数

tmpfs           /dev/shm     tmpfs    defaults             0            0

devpts          /dev/pts      devpts   gid=5,mode=620      0            0

sysfs           /sys          sysfs    defaults              0            0

proc           /proc         procfs    defaults              0            0

这种挂载的第一列和第3列看起来差距这么大是因为这些是和内核有关挂载在内存中的。

Linux提供了一种特殊的文件系统procfs,他通常以/proc目录的形式呈现。该目录包含了许多特殊文件用来对驱动程序和内核信息进行跟高层的访问。

第5列:是否能被dump备份(eg: dump 0 -f  /dev/sda1  /boot   把/dev/sda1按照0备份级别备份到/boot目录下),0表示不要做dump备份,1表示要每天进行dump的操作,2表示不定期备份。通常这一列的值是1或0.

第6列:开机过程中,系统会默认会以fsck检验文件系统是否完整(clean)。不过,某些文件系统不用检验比如swap和一些特殊文件系统/peoc、/sys等。所以存在fsck自段来设置是否检验文件系统。0表示不检验,1表示最早检验(一般只有根文件系统设为1),2也是检验不过没有1早,其他文件系统设为2就行了。

Ps: 千万不要对已挂载的文件系统执行fsck

四、mount

monut  | grep  ‘/dev/sda1’  查看挂载信息

mount   -o  remount,ro  (已只读方式重新挂载,不需要先卸载哦)  /dev/sda1   /boot 

因为每个文件系统都有一个根目录,所以挂载这个动作只是把某一个文件系统的根目录,放在另一个目录中,原本文件系统的目录下的文件就暂时被遮蔽,取消挂载后又会恢复。即挂载就是使一个分区可以读取存入,就是放在一个目录下。谁挂上去就可以操作谁,互不影响,取消挂载后文件也不会消失。