文件系统


ln [option] SRC DST

option:

   -s 软链接(默认是硬链接),windows的快捷方式就是软链接,只是windows有文件后缀

   -v 显示详细信息

linux支持的文件系统类型:

   ext2,ext3,ext4

   reiserfs

   xfs,jfs,(UNIX默认支持的文件系统,linux内核支持)

   iso9660(光盘文件系统)

   GFS2,OCFS2(集群文件系统)

   NFS,CIFS(网络文件系统)

   FAT,FAT32(VFAT),NTFS(windows文件系统)

扇区:物理上的最小存储单位,出厂时格式化(低级格式化),512bytes

第一个扇区(MBR):引导扇区(512bytes)

   446:boot loader(程序代码)

   64:磁盘分区表(每16byte可以标示一个分区,即一块硬盘只可以分64/16=4个分区)

   2:分区的结束代码(程序代码)

16byte:

扩展分区:逻辑概念

   再次分区 --> 逻辑分区

硬盘接口:

   IDE,ATA 并行口 133Mbps  USB2.0  480Mbps

   SCSI(有自己独立的控制器,需要CPU控制的量很小,相当于IDE接口的1/10)并行口  320Mbps

   SATA 串行口 SATA3 6Gbps

   SAS  串行SCSI (服务器使用,速度比SATA快)


linux分区:

IDE:/dev/hda(第一口主),/dev/hdb(第一口从),/dev/hdc(第二口主)

SATA:/dev/sda

主分区(扩展分区):1-4

逻辑分区:5+

   USB:/dev/sd

   SCSI:/dev/sd

   SAS:/dev/sd

高级格式化:在分区上创建文件系统(内核)

ext2:不支持日志功能

ext3:支持日志

格式化:

mkfs.ext3 等同于mkfs -t ext3

mke2fs

   -j 创建成日志文件系统

   -L 指定卷标

   -b 指定磁盘块大小

   -m 指定为管理员预留块的百分比(默认5%)

   -i 指定inode的创建比例(不能小于磁盘块大小)

tune2fs

   -l 显示超级块的信息 例如:tune2fs -l /dev/sda5

   -L

   -j

   -m #

   -c

   -i #[d|m|w]

   -o 设定文件系统默认挂载选项

dumpe2fs /dev/sda5  查看其超级块详细信息

e2label /dev/sda5查看卷标

e2label /dev/sda5 hello  修改卷标

blkid /dev/sda5  查看信息


mount:


格式:mount [option] DEVICE MOUNT_POINT

option:

   -t 指定文件系统类型

   -o 指定设备访问属性(rw,suid,dev,exec,auto,nouser,async这些都是默认属性)

   remount重新挂载,例如:mount -o remount,rw /dev/sda5

   loop挂载镜像文件

   -r 相当于-o ro表示只读

   -n 挂载时不往/etc/mtab中写入

   -a 将写在/etc/fstab文件中支持自动挂载的文件挂载在挂载点上

umount:

   格式:umount DEVICE或者umount MOUNT_POINT

fuser:用于查看正在访问文件的目录

   -v

   -k 杀死进程

   -m 指定文件名(可以和-k一同使用,则-km)


虚拟内存:必须是独立的文件系统


格式:mkswap /dev/sda7 格式化swap分区

swapon -a同时启用标识为swap分区的虚拟内存

swapoff 关闭已启用的swap内存


dd:底层的复制命令

控制符:

   if=

   of=

   bs=

   count=

格式:

举例:dd if=/etc/issue of=/tmp/issue

dd if=/dev/sda of=/root/mbr.backup bs=512 count=1

dd if=/dev/zero of=/root/swap.vir bs=1M count=128 把文件模拟成虚拟交换分区

/etc/fstab文件格式:

字段:

1、设备:设备文件,LABEL= ,UUID=

2、挂载点:

3、文件系统类型:

4、挂载选型:多个选项间用逗号分隔

5、完全备份的频率:0全部备份,1每日完全备份,2,每隔一天完全备份

6、文件系统检测的次序(0-5):0表示不检测;1首先检测;2-5以此类推


RAID:(redundant array independent of disks)独立的冗余磁盘阵列


集成主板上的raid卡,称为控制器

独立的raid卡,称为适配器

raid自带的内存称为raid内存

raid卡电池给raid内存提供电源


级别:磁盘的不同组合方式

raid0:条带卷,速度是单块硬盘的N(硬盘数)倍,可靠性极差,临时文件目录可使用

raid1:镜像卷,写入性能未提高,读取性能提高,可靠性提升,一般用于安装操作系统

raid4:至少3块磁盘,校验码磁盘压力过大,因此一般不常用,使用raid5

raid5:至少3块硬盘,校验码在磁盘中轮流存放,不像raid4放一块硬盘

raid6:至少需要4块盘,raid5的升级,可以坏两块盘,但没raid5常用

raid10:至少4块盘,可以同时损坏磁盘数的一半,但不能是raid1的同一组磁盘

raid01:至少4块盘,可以同时损坏磁盘数的一半,但是raid0不能同时坏,没有raid10常用

raid50:raid5+raid1,举例同上

linux中软RAID:

由内核中的md模块实现,在/dev目录中会有/dev/md#设备,软raid可以是任意块设备,即也可以基于分区,RAID等创建

命令mdadm:mdadm [mode] <raiddevice> [options] <component-devices>

mode:

   -C 创建RAID

   -D 显示RAID的详细状态信息

   -S 用于停止RAID设备

   -A 用于装配RAID

options:

   -l,--level= 指定级别

   -n,--raid-devices 指定设备的个数

   -c,--chunk= 指定大小,默认64k,必须是磁盘块的2的n次方倍

   -a 创建时为--auto,添加时为--add

   -r,--remove 移除

   -f,--fault 标记为损坏硬盘

   -x,指定空闲盘的个数

举例:mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda{5,6}

   mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sda{7,8}

   mdadm -D /dev/md1

   mdadm /dev/md1 -f /dev/sda8 指定/dev/md1中的/dev/sda8损坏

   mdadm /dev/md1 -a /dev/sda9 将/dev/sda9假如/dev/md1中

   mdadm -S /dev/md0 停掉/dev/md0

   mdadm -A /dev/md0 /dev/sda{5,6}

   mdadm -D --scan 扫描设备文件,并读取/etc/mdadm.conf配置文件,可以先mdadm -D --scan >> /etc/mdadm.conf

配置文件:/dev/mdadm.conf,此文件不存在,需要手动去创建

watch -n 1 'cat /proc/mdstat' 每隔一妙动态刷新一次过程


LVM磁盘管理:


卷dm: 设备文件在/dev/mapper/下

meta device:LVM(Logical Volume Manager)

PV:

pvcreate,pvdisplay,pvremove,pvs,pvmove

VG:

vgcreate,vgdisplay,vgs,vgreduce,vgextend,vgremove

LV:

lvcreate,lvdisplay,lvs,lvsreduce,lvextend,lvresize,lvremove

pE:

LE:

fsck,e2fsck:检测文件系统


文件系统的ACL:

lsattr:

chattr:

getfacl FILE查看文件的权限

setfacl 设定文件的ACL

格式:setfacl [options] id:MODE FILE_NAME

option:

-m 添加权限

-x:删除权限

setfacl -m u:USERNAME:MODE FILE

setfacl -x u:USERNAME FILE 删除权限

setfacl -m d:u:USERNAME:MODE FILE(d,创建默认的权限,一般是针对目录的)

setfacl -m m:MODE FILE

举例:setfacl a.txt查看a.txt的权限

setfacl -m m::r-- a.txt设置a.txt的掩码权限,不论给分配什么权限,都以mask权限为主

新建的分区必须在挂在时指定支持ACL:mount -o acl /dev/sdb1 /data