linux中一个新硬盘要想使用,必须先对其进行分区,然后格式化,最后挂载,这是为什么呢?
为什么要进行磁盘分区?
便于硬盘的规划、文件的管理。
磁盘分区可有效地利用磁盘空间。
提高系统运行效率。
便于为不同的用户分配不同的权限。
节约寻找文件的时间。
为什么要给分区格式化?
硬盘分区后还要进行格式化才能正常使用。格式化是在分区上建立文件系统,也就是告诉系统按照什么规则存取文件。
什么是文件系统:文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文 件的方法。操作系统中负责管理和存储文件信息的软件结构 • 从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文 件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控 制文件的存取,安全控制,日志,压缩,加密等
磁盘为什么需要挂载?
这是由Linux的文件系统管理决定的。 首先,Linux将所有的硬件设备都当做文件来处理,因此当使用光驱等硬件设备时,必须将其挂载到系统中,只有这样Linux才能对磁盘上面的文件进行操作。 其次,linux的系统组织方式是整个系统从根开始,按树形目录依次向下逐渐扩大,分类存放不同用途的文件,当其写作一个路径时,第一个/表示根,即root,其他的/表示路径分割符,但都读作“斜线”或“Slash”。正是因为这种组织方式,挂载必须挂载到某个特定的目录中,一般在/mnt目录。
我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上, 然后通过访问这个目录来访问存储设备。
细讲磁盘分区:
MBR模式分区规则
1.一块磁盘上主分区和扩展分区的个数总和不能超过4个
2.一块磁盘上最多只能有1个扩展分区
3.扩展分区中可以创建逻辑分区,个数限制视磁盘类型而定
操作:
lsblk
显示现有磁盘以及分区,
在虚拟机中手动添加一个新硬盘输入:
echo '- - -' > /sys/class/scsi_host/host0/scan
可以看到新加的磁盘
分区工具fdisk用法介绍 fdisk命令参数介绍 p、打印分区表。 n、新建一个新分区。 d、删除一个分区。 q、退出不保存。 w、把分区写进分区表,保存并退出。
[root@localhost ~]# fdisk /dev/sdb
按"p"键打印分区表
这块硬磁尚未分区 按"n"键新建一个分区。
出现两个菜单e表示扩展分区,p表示主分区 按"p"键出现提示:"Partition number (1-4): "选择主分区号 输入"1"表示第一个主分区。
直接按回车表示1柱面开始分区。
提示最后一个柱面或大小。 输入+5620M 按回车 表示第一个分区为5G空间。 按"p"查看一下分区 这样一个主分区就分好了。 接下来分第二个主分区,把剩余空间都给第二个主分区。 按"n" 键新增一个分区 按"p"键设为主分区 输入"2"把主分区编号设为2 按两下回车把剩余空间分给第二个主分区。 按"p"键打印分区表 按"w"键保存退出。 可根据自己的硬盘大小来划分合适的分区。
细讲格式化:
格式化,又称逻辑格式化,它是根据用户选定的文件系统(如EXT2,EXT3,EXT4,NTFS,FAT32)在磁盘的特定区域写入特定数据,在分区中划分出一块存放文件分配表,目录表等用于文件管理的磁盘空间。
blkid 显示所有文件系统名 uuid 文件系统类型 -L 卷标 显示指定卷标的文件系统名 -U UUID 显示指定UUID的文件系统名
[root@localhost ~]# blkid
/dev/sda1: UUID="43d18d20-40aa-4294-b67c-b5cf20bcd1f5" TYPE="xfs"
/dev/sda2: UUID="e19af622-fdbd-4f66-8e6a-a543e0efd722" TYPE="xfs"
/dev/sda3: UUID="5b7f7fca-22f3-4b2a-b21c-867fdac4c842" TYPE="swap"
/dev/sda5: UUID="fbbc6de7-b727-41f8-b18b-90e56dc412b3" TYPE="xfs"
/dev/sdb1: LABEL="TEST" UUID="9046608b-fd86-4604-9d05-0f5f57125125" TYPE="ext2"
创建文件系统 • mkfs命令: • (1) mkfs.FS_TYPE /dev/DEVICE ext4 xfs btrfs vfat
[root@centos7]# mkfs.xfs /dev/sdb1 [root@centos7]# mkfs -t xfs /dev/sdb2
mkfs.ext4 -L 设置卷标
[root@centos7]# e2label /dev/sdb2 查看卷标
zhangsan
e2label /dev/sdb2 lisi 修改卷标 仅对ext2/ext3/ext4
[root@centos7]# mke2fs -t ext4 /dev/sdb2 仅支持创建ext系列文件系统
[root@localhost ~]# mkfs.ext4 -L qjc /dev/md3
/dev/md3: LABEL="qjc" UUID="7c8e91e9-443b-4896-b0d9-f46525980c64" TYPE="ext4"
mkfs.xxx -L 卷标 -b block size -j 启用日志区
tune2fs 查看及修改ext文件系统
-l /dev/sdxn 列出指定文件系统的详细信息,信息来源于超级块(superblock) -L 设置label -m 设置预留百分比 -j ext2升级为ext3 -o acl ^acl
手工开启acl
tune2fs -o acl /dev/sda5
dumpe2fs 导出文件系统信息 开头部分与tune2fs -l 相同 -h 不显示分组信息
df 查看文件系统(-h 以合适的单位示系统大小 -T 显示系统类型)
[root@localhost ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda5 xfs 20G 3.9G 16G 20% /
devtmpfs devtmpfs 472M 0 472M 0% /dev
tmpfs tmpfs 488M 0 488M 0% /dev/shm
tmpfs tmpfs 488M 8.8M 479M 2% /run
tmpfs tmpfs 488M 0 488M 0% /sys/fs/cgroup
/dev/sda2 xfs 10G 114M 9.9G 2% /app
/dev/md1 xfs 1019M 74M 946M 8% /backup
/dev/sda1 xfs 197M 133M 65M 68% /boot
tmpfs tmpfs 98M 4.0K 98M 1% /run/user/42
tmpfs tmpfs 98M 36K 98M 1% /run/user/1000
tmpfs tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/testvg-testlv ext4 6.8G 32M 6.4G 1% /users
[root@localhost ~]#
du 查看文件夹大小,包含文件夹里面文件
du -s 仅仅查看文件夹大小
du -h 以M方式显示大小,方便查看
[root@localhost ~]# du -s repodata/
32 repodata/
[root@localhost ~]# du -h repodata/
32K repodata/
[root@localhost ~]#
文件系统检测和修复
常发生于死机或者非正常关机之后 • 挂载为文件系统标记为“no clean” • 注意:一定不要在挂载状态下修复 • fsck: File System Check fsck.FS_TYPE -p: 自动修复错误 -r: 交互式修复错误 FS_TYPE一定要与分区上已经文件类型相同 • e2fsck:ext系列文件专用的检测修复工具 -y:自动回答为yes -f:强制修
fsck /dev/sda 检查硬盘情况 -C 显示检查过程 -f 强制检查
fuser -mv /mnt 当显示 设备正在忙的时候,可以使用这个命令查看使用进程
细讲mount:
根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载”
1.挂载:根文件系统外通过关联至根文件系统上的某个目录来实现访问
2.挂载点:mount_point,用于作为另一个文件系统的访问入口;
(1) 事先存在;
(2) 应该使用未被或不会被其它进程使用到的目录;
(3) 挂载点下原有的文件将会被隐藏;
挂载方法:mount DEVICE MOUNT_POINT • mount:通过查看/etc/mtab文件显示当前已挂载的所有设备
常用命令选项:
-t vsftype:指定要挂载的设备上的文件系统类型;
-r: readonly,只读挂载;
-w: read and write, 读写挂载;
-n: 不更新/etc/mtab;
-a:自动挂载所有支持自动挂载的设备;(定义在了/etc/fstab文件中,且挂载选项中有“自动挂载”功能)
-L 'LABEL': 以卷标指定挂载设备;
-U 'UUID': 以UUID指定要挂载的设备;
-B, --bind: 绑定目录到另一个目录上;
注意:查看内核追踪到的已挂载的所有设备:cat /proc/mounts
卸载命令:umount
命令使用格式:
# umount DEVICE
# umount MOUNT_POINT