分区:
每一个扇区512字节。
centos6以允许柱面和扇区为单位分区
MBR包括三部分内容(共512字节):
分区表:指出有几个分区,每个分区的起始扇区号、大小和操作系统类型及其他特性。(64字节)
自举装入程序:PC机启动时由BIOS装入内存执行。 如果装了多个操作系统,将根据选择去读出对应分区的
sector程序装入内存,执行该操作系统的自举程序。(446字节)
校验信息:检验是否正确。(2字节)
boot sector应当包含如下信息:
本分区操作系统类型
数据区大小
根目录区允许最大目录项(在根目录区最多创建多少个文件)
如果该分区安装了操作系统并被设置为活动分区,那还会包含一段“引导程序”;如果没安装系统,则该分区引导扇区为空或其中的数据是无效的。
MBR和boot sector应该是由上至下的关系:
1 启动顺序有先后。PC机启动时,先执行MBR,再根据选择执行某个分区下的boot sector。
(选择执行的boot sector所在分区就是活动分区。“用户选择一个操作系统” 实际上也就是选择一个分区作为活动分区。)
2 boot sector可以为空(没装系统),但MBR必须包含内容。
3 MBR必须被读取并执行;引导扇区根据选择执行,有的甚至可以不执行(即上文中的”数据是无效的”)。
4 MBR实际上包含的内容也比boot sector广泛,MBR中相当于包含了硬盘整体层面上的引导扇区(自举装入程序)、根目录区(分区表)。
查看前512字节
skip针对if后的设备,if后为输入设备(从该设备读出)
seek针对of后的设备,of后为输出设备(写入到该设备)
lsblk查看内存分区表(系统运行中参考此表)
fdisk查看硬盘中的分区表(硬盘实际情况)
修复分区表:
将文件拷贝到远程主机
救援模式中设置临时IP
从远程主机拷贝文件
sync命令:强制写入磁盘
parted实时生效命令。
parted 命令交互模式时:需要先mklable选择采用如何分区,再使用mkpart选择主分区或扩展分区或逻辑分区,再选择文件系统,再分大小。
非交互式用法:parted [选项]... [设备 [命令 [参数]...]...]
parted /dev/sdb mklabel gpt|msdos
parted /dev/sdb print
parted /dev/sdb mkpart primary 1 200 (默认M)
parted /dev/sdb rm 1
parted –l 列出分区信息
查看硬盘信息的三条命令
fdisk -l /dev/sda 不能加分区号,切记 ( Disk lable type :dos ->采用的是GBR分区)
partprobe命令在centos6上不能够同步分区表
在centos6上同步分区表须使用以下命令 partx -a 硬盘 (增加分区) partx -d --nr 5-7(删除的分区范围) /dev/sda
在centos7上同步分区表,支持partprobe命令
centos7中显示转换为以柱面为单位(默认以扇区为单位显示)
分区表克隆分区
只能同步MBR不能同步EBR(扩展分区的分区表),信息存储不在同一位置。
文件系统驱动
fdisk 中block大小是1K。mkfs中block大小是(1,2,4)K,最小存储块,可人为指定。
mkfs.{ext4|xfs|btrfs|vfat} -t (type) -h (help)
mke2sf : -f: 若设备已有文件系统,需要-f强制格式化
-b {1024|2048|4096} 指定块大小 -t: 指定文件系统类型 -L'LABEL':设置卷标
-j:相当于 -t ext3 (-i # 为数据空间中每多少字节创建一个inode;不应该小于block大小
若小于块大小则会导致inode条目所占空间过大,造成空间浪费,在生成文件系统时产生过多的inode条目)
-N # 指定分区中创建多少个inode -I: 一个inode记录占用的磁盘空间大小 128-4096
-m # 默认5%,为管理人员预留的空间占比 -O 特性 启用指定特性 -O ^特性:关闭指定特性
mkfs命令可以直接 点 后面跟.{ext4|xfs|btrfs|vfat}而mke2fs需要使用-t 后面跟文件类型;mkfs在格式化为xfs时使用后续-b (已验证)与其在格式化为ext系列是格式有所不同,mkfs可以格式化为ext系列也可格式化为xfs,但mke2fs只能格式化为ext系列。
mkfs与mke2fs在格式化为ext系列时无论以前是否有文件系统,仍会执行新命令,但在使用mkfs格式化为xfs格式时(mke2fs不支持xfs),若以前有文件系统,则需要加-f。
xfs_info 挂载点 所查信息为格与式化xfs文件系统后的信息相同
ext3相对于ext2增加了追加日志功能
df:列出文件系统的整体磁盘使用量
du:评估文件系统的磁盘使用量(常用在推估目录所占容量)
tune2fs :重新设定ext系列文件系统可调整参数的值(调整ext系列的)后面需要跟块设备
tune2fs:重新设定ext系列文件系统可调整参数的值
-l 查看指定文件系统超级块信息;super block
-L 'LABEL’ 修改卷标
-m # 修预留给管理员的空间百分比
-j 将ext2升级为ext3
-O 文件系统属性启用或禁用, –O ^has_journal
-o 调整文件系统的默认挂载选项,–o ^acl
-U UUID 修改UUID号
dumpe2fs:显示(转储)ext文件系统信息,将磁盘块分组管理 -h:查看超级块信息,不显示分组信息
dumpe2fs -h 磁盘名 等价于 tune2fs -l 磁盘名
xfs_info:显示已挂在的xfs文件系统信息。
e2fsck:ext系列的专用的检测修复工具
fsck fsck.type fsck -t type
修复成功
xfs_repair:xfs文件系统专用的检测修复工具;xfs_repair 可以检查/修复文件系统,不过,因为修复文件系统是个很庞大的任务!因此,修复时该文件系统不能被挂载!
无论是xfs_repair或fsck,只有root且文件系统有问题是才使用这个命令,否则在正常情况下使用此命令,可能会造成系统的危害,命令被执行时被检查的partition务必不能挂在到系统上,一定要处于卸载状态。
增加acl权限(centos6创建文件系统默认没有acl权限)添加acl权限(centos7默认有)
取消日志功能
e2label device [ new-label ] 修改设备的label
挂载:
一个设备可以有多个挂载点,一个挂载点只能对应一个设备
当两个设备挂在到同一文件夹上时,后挂载的会覆盖之前挂载的,卸载时先卸载后挂载的,之前挂载的会被显示出来。
查看挂载信息
mount -B 文件夹1 文件夹2 (相当于硬链接)
把文件挂载到文件
在centos6上挂载时需要mount -o loop /data/dist /mnt/dist
临时修改loop数量及在文件中修改(centos6中)
将文件与loop设备关联
之前没有acl,追加上acl
然后再取消acl
若取消文件系统的acl功能,之前加在文件或目录上的acl权限也不再显示,恢复文件系统acl权限后出现。
临时命令
使用fdisk和gdisk修改分区的ID的区别:(fdisk对GPT分区支持效果不好)
fdisk 修改MBR分区中分区ID
fdisk修改GPT分区中ID(fdisk对GPT不完全支持)
gdisk修改MBR分区ID
gdisk修改GPT分区ID
若挂载文件被访问,则不能够取消挂载;若要取消挂载
fuser命令
强制解除挂载占用
查看该文件是否为挂载点
查看文件占用情况,若文件未被打开无信息反馈,echo $? 为1
及进程信息
自动挂载写入/etc/fstab文件开机自动挂载的选项:
o 第一栏:磁盘装置文件名/UUID/LABEL name:
这个字段可以填写的数据主要有三个项目:
§ 文件系统或磁盘的装置文件名,如/dev/vda2 等
§ 文件系统的UUID 名称,如UUID=xxx
§ 文件系统的LABEL 名称,例如LABEL=xxx
因为每个文件系统都可以有上面三个项目,只是从/etc/fstab 里面看到的,在挂载点/boot使用的已经是UUID !写/dev/mapper/xxx 的 因为那个是 LVM ,LVM 的文件名在你的系统中也算是独一无二的,这部份我们在后续章节再来谈。不过,如果为了一致性,你还是可以将他改成UUID 也没问题。建议使用UUID ,要记得使用blkid 或xfs_admin 来查询UUID !
o 第二栏:挂载点(mount point)::
就是挂载点啊!挂载点是什么?一定是目录。
o 第三栏:磁盘分区槽的文件系统:
在手动挂载时可以让系统自动测试挂载,但在这个文件当中我们必须要手动写入文件系统才行!包括 xfs, ext4, vfat, reiserfs, nfs 等等。
o 第四栏:文件系统参数:
参数 内容意义
async/sync
异步/同步
设定磁盘是否以异步方式运作!预设为 async(效能较佳)
auto/noauto
自动/非自动
当下达 mount -a 时,此文件系统是否会被主动测试挂载。预设为 auto。
rw/ro
可擦写/只读
让该分区槽以可擦写或者是只读的型态挂载上来,如果你想要分享的数据是不给用户随意变更的, 这里也能够设定为只读。则不论在此文件系统的文件是否设定 w权限,都无法写入!
exec/noexec
可执行/不可执行
限制在此文件系统内是否可以进行『执行』的工作?如果是纯粹用来储存数据的目录, 那么可以设定为 noexec 会比较安全。不过,这个参数也不能随便使用,因为你不知道该目录下是否默认会有执行档。
举例来说,如果你将 noexec 设定在 /var ,当某些软件将一些执行文件放置于 /var下时,那就会产生很大的问题喔! 因此,建议这个 noexec 最多仅设定于你自定义或分享的一般数据目录。
user/nouser
允许/不允许使用者挂载
是否允许用户使用 mount 指令来挂载呢?一般而言,我们当然不希望一般身份的user 能使用 mount ,因为太不安全了,因此这里应该要设定为 nouser 。
suid/nosuid
具有/不具有 suid 权限
该文件系统是否允许 SUID 的存在?如果不是执行文件放置目录,也可以设定为nosuid 来取消这个功能!
defaults
同时具有 rw, suid, dev, exec, auto, nouser, async 等参数。 基本上,预设情况使用defaults 设定即可!
o 第五栏:能否被dump 备份指令作用:
dump 是一个用来做为备份的指令,不过现在有太多的备份方案了,所以这个项目可以不要理会。直接输入0 就好了!1为1天备份一次。
o 第六栏:是否以fsck 检验扇区:(开机检测)
早期开机的流程中,会有一段时间去检验本机的文件系统,看看文件系统是否完整(clean)。不过这个方式使用的主要是透过fsck 去做的,我们现在用的xfs 文件系统就没有办法适用,因为xfs会自己进行检验,不需要额外进行这个动作!所以直接填0 就好了。fsck检查的文件系统的顺序:允许的数字是0 1 2。0:不自检1:首先自检;一般只有rootfs才用2:非rootfs使用