首页 > 代码库 > Linux磁盘及文件系统管理进阶

Linux磁盘及文件系统管理进阶

目录

1.mkfs介绍
2.文件系统的挂载使用(mount)
3.练习
4.fuser使用

1.mkfs介绍:mkfs.ext2 /dev/sdb1

[root@localhost ~]# mkfs.ext2 /dev/sdb1

mke2fs 1.42.9 (28-Dec-2013)

文件系统标签=

OS type: Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

655360 inodes, 2621440 blocks

131072 blocks (5.00%) reserved for the super user //为了当分区沾满时,为管理员留空间去挪数据,实现管理

第一个数据块=0

Maximum filesystem blocks=2684354560

80 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:  //超级块备份的位置

32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: 完成                            

正在写入inode表: 完成                            

Writing superblocks and filesystem accounting information: 完成


2.文件系统的挂载使用

文件系统的使用:

首先要“挂载”:mount命令和umount命令

根文件系统之外的其他fs要想能够被访问,都必须通过“关联”至根fs上的某个目录来实现,此关联操作即为“挂载”

挂载点:用于作为另一个文件系统的访问入口

(1)实现存在

(2)应该使用未被或不会被其他进程使用的目录

(3)挂载点下原有的文件将会隐藏


  mount [-lhV]

  mount -a [-fFnrsvw] [-t vfstype] [-O optlist]

  mount [-fnrsvw] [-o option[,option]...]  device|dir

  mount [-fnrsvw] [-t vfstype] [-o options] device dir

  umount device|dir

//正在被进程访问到的挂载点无法被卸载

-l 是默认选项,list

-n -notmab //不写入/etc/mtab ,挂载点记录文件

//默认设备挂载或卸载的操作,会同步更新/etc/mtab

-r read-only //光驱只能被只读挂载

-w read-write //默认

-v verbose

-t 指定fs类型可省略,mount将会通过blkid命令来判断类型

/etc/filesystems

-L label //以卷标方式挂载

mount -L MYDATA /tmp/test

-U UUID //挂载时以UUID的方式指明设备

-a //挂载所有 /etc/fstab

不带参数,显示所有的已经挂载的fs

cgroup 是什么

-o options挂载属性

注:有些选项只能用在/etc/fstab文件中

async 异步写入

sync  同步写入

-atime/noatime 当一个文件或目录被访问的时候立即更新时间戳

//关闭较好

diratime/nodiratime 目录在被访问时是否更新时间戳

remount 重新挂载

-o acl 支持使用facl功能

//默认挂载是不支持facl的

tune2fs -o acl /dev/sdb1  //对设备启用acl,再次mount的时候即使不指定-o,acl也可以使用acl

tune2fs -l /dev/sdb1 //查看选项

mount /dev/sdb1 /mnt

mount //会显示,没有acl

但是setfacl -m u:wolf:rw-- 仍然可以使用

ro 只读

rw 读写

dev/nodev //此设备上是否允许创建设备文件

exec/noexec //是否允许运行此设备上的程序文件

//防止非法程序,自动运行

auto/noatuto //是否允许mount -a自动挂载

user/nouser //是否允许普通用户挂载此fs

defaults:默认// 

rw,suid,dev,exec,auto,nouser,async,relatime

suid:是否允许程序文件上的suid和sgid权限生效,nosuid禁止生效

relatime:是否一局mtime和ctime来修改atime

一个使用技巧:

可以实现将目录绑定在另一个目录上,作为其临时访问入口

mount --bind  /etc  /mnt

查看当前系统已经挂载的设备

mount

cat /etc/fstab

cat /etc/mtab

cat /proc/mounts

挂载光盘设备

mount -r /dev/cdrom /mnt -o iso9660

/dev/sr0就是cdrom

挂载U盘:实现识别U盘的设备文件

强制卸载:设备

lsof /mnt //显示占用目录的进程

yum install psmisc 

www.rpmfind.net

rpm -ql psmisc

fuser -km /mnt  //删除该进程即可

fuser -v MOUNT_POINT //查看谁在占用

挂载本地回环设备:

mount -o loop /PATH/TO/SOME_LOOP_FILE

img,iso文件

交换分区:

创建交换分区:mkswap

swapon [OPTION] [DEVICE]

-a //定义在/etc/fstab文件中的所有的swap设备

swapoff

设定除根fs意外的其他fs开机自动挂载,使用/etc/fstab文件

开机的时候运行了一个脚本,该脚本会调用fstab

/dev/mapper/centos-swap  swap   swap    defaults     0 0

1.挂载设备:

设备文件,LABEL,UUID,伪fs:sysfs proc tmpfs

2.挂载点: swap类型的挂载点为swap

3.fs_type:

4.挂载选项:

defaults,使用默认的挂载选项

多个使用,分隔:defaults,acl,noatime

5.转储频率

0 从不备份

1 每天备份一次

2 每隔一天备份一次

6.自检次序

0 不自检

1 首先自检,通常是根fs可用1

2 次级自检

...

LABEL=MYDATA   /mydata  ext4 defaults 0 0

UUID=.........   //也可以

df和du

df命令

-h 人性化显示

-l 只显示本地fs,否则会显示所有的包括网络fs

-i inode使用情况而非blocks

du 显示文件大小

-s summary总共大小

-h human-readable

3.练习

1.创建一个10G的分区,并格式化为ext4的fs

    (1)block大小为2048,预留空间为2%,卷标为MYDATA

    mkfs.ext4 -b 2048 -m 2 -L MYDATA /dev/sdb1

    (2)挂载/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳

     mount /dev/sdb1 /tmp/test -o noexec,noatime

     或者使用tune2fs

2.创建一个1G的swap分区,开机自动挂载

vim /etc/fstab 

4.fuser的使用详解:

-c|-m 用于posix支持

-k 杀掉访问文件的进程

-i 杀掉进程之前询问用户

-u 显示用户

-V 显示详细信息

显示的内容:

Linux磁盘及文件系统管理进阶