系统管理-磁盘管理

磁盘有机械硬盘(HDD)和固态硬盘(SSD)之分

机械硬盘即传统的普通硬盘,主要有:盘片,磁头,盘片转轴以及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。

固态硬盘,简称固盘,是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成。

当前比较主流的硬盘接口有SATA,SAS,PCIE,FC

 分区操作相关命令

fdisk,parted,gdisk,blkid,tune2fs

 Ext3/4 XFS文件系统解析

 

cp

1、分配一个未使用的inode号码,在inode表中添加一个新的项目
2、在目录的表中创建一个dentry,关联文件名和inode号码
3、把数据复制到新文件中

mv

如果目标和源文件在相同的文件系统:
1、使用新文件名新建dentry
2、删除带有原文件名的dentry
除时间标记以外对inode没有影响,对磁盘上的数据没有影响,不会移动数据,如果目标是不同的文件系统,mv就是复制和删除

rm

1、减少链接的数目,从而释放inode号码,这个号码可以被从新利用
2、把数据块放在可用的空间列表中
3、删除dentry
4、数据没有被实际的删除,但是当数据块被另一个文件使用时,原有的数据就会被覆盖

文件链接原理及注意事项

软连接vs硬链接

硬链接
1、两个文件名必须都在一个文件系统上(共享一个inode号码,inode表对于某个文件系统是独特的)。inode号码和inode必须在同一个文件系统
2、无法使用ln命令创建目录的额外硬链接
3、文件的链接数会增加,删除文件链接数会减1,在删除所有名称之前,数据一直存在
ln filename likename
符号链接(软连接)
1、有自己的inode号码:符号链接和源文件不同的单独文件
2、长列表(ls -l)的第一个字母是l:符号链接是一种特殊类型的文件,他有着自己的文件类型标记
3、符号链接的权限不重要,实际上指的是文件的权限
4、符号链接的内容是它指向文件的路径名
5、如果删除了原文件,则数据丢失(找不到链接地址,更像是一个快捷方式)
ln -s /PATH/filename likename
使用readlink b.txt 读取链接中的路径

挂载

挂载是我们访问文件系统的方法,。文件系统中的数据需要挂载才能够访问。

挂载点是一个目录,为我们提供访问文件系统的接口

使用mount命令我们可以看到当前的系统都挂在了那些文件系统
[root@localhost ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=917596k,nr_inodes=229399,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agen
t=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_prio,
net_cls)cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=36,pgrp=1,timeout=0,minproto=5
,maxproto=5,direct,pipe_ino=13846)mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
tmpfs on /run/user/42 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=186708k,mode=700,uid=42
,gid=42)tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=186708k,mode=700,uid=
1000,gid=1000)fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,gr
oup_id=1000)tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=186708k,mode=700)
[root@localhost ~]# 

手动挂载

我们可以使用mount命令手动挂载文件系统(man mount)

没有空盘暂时不做演示,具体百度

挂载状态下的文件系统如果不再使用或者需要在已挂载文件系统的挂载点下挂载其它文件系统,需要先卸载正在挂载状态的文件系统(umount)

fuser 

-v 那些进程在占用挂载点

-km 结束占用挂载点的进程

挂载光盘
mount -t iso9660 /dev/cdrom /mnt
挂载镜像文件
mount -o loop /tmp/RHEL6.iso /mnt
挂载USB设备
mount -t vfat /dev/sdNX /mnt

开机挂载

有时候我们希望某个文件系统能够在开机的时候,自动挂载到某一个挂载点,这个时候我们可以使用/etc/fstab
注意:将新文件系统添加到/etc/fstab时,应该使用blkid确定其UUID并通过UUID进行挂载,不能按照设备名称挂载
centos7在/etc/fstab中使用UUID,而不是LABEL,以减少命名冲突的可能性

不做测试。。

[root@localhost ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Mon Aug 20 19:02:30 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=1b37695f-7fff-4261-a64e-3ed5a912d97e /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
[root@localhost ~]# 

fstab每行有6各部分(设备的UUID,挂载点,文件系统类型,挂载选项,dump,fsck)

编辑fstab时要注意,如果不慎将里面的内容写错,可能导致在启动的时候出现异常,不做测试,遇到问题自己百度(不报错就说明正常)

 交换分区

交换分区是磁盘空间的一个术语,用于扩展系统内存,通常是做额外特殊磁盘分区。正如分区需要格式化文件系统,然后才能用户存储文件和目录一样,交换分区最初也必须进行这样的格式化。

简单介绍。。详情百度

创建swap交换分区(请百度,很简单)

创建逻辑卷

1、将分区变成pv
[root@localhost ~]# pvcreate /dev/sda2 
2、创建卷组vg001,并将pv假如vg001
[root@localhost ~]# vgcreate vg001 /dev/sda2
3、从vg001组创建逻辑卷lv001,大小80M
[root@localhost ~]# lvcreate -L 80M -n lv001 vg001
4、创建文件系统
[root@localhost ~]# mkfs.xfs /dev/vg001/lv001
5、开机挂载
[root@localhost ~]# blkid /dev/vg001/lv001

由于时间关系一部分没测试,抱歉,遇到问题可以留言或者自行百度

原文地址:https://www.cnblogs.com/52-qq/p/9554548.html