存储结构与磁盘划分

  • 1. 常见目录名称及对应内容
  • 2. 物理设备的命名规则
  • 3.挂载硬件设备
    • 3.1 mount与umount
    • 3.2 fdisk命令
    • 3.3 du命令
    • 3.4 示例
  • 4.添加交换分区
  • 5.磁盘容量配额
    • 5.1 xfs quota 命令
    • 5.2 edquota 命令
      • quotaon 命令
      • quotaoff命令
  • 6.软硬方式链接
    • ln命令

1. 常见目录名称及对应内容

2. 物理设备的命名规则

概念性原理:
而硬盘设备是由大量的扇区组成的,每个扇区的容量为 512字节。其中第一个扇区最重要,它里面保存着主引导记录与分区表信息。就第一个扇区来讲,主引导记录需要占用 446字节,分区表为 64字节,结束符占用 2字节;其中分区表中每记录一个分区信息就需要 16字节,这样 一来最多只有 4个分区信息可以写到第一个扇区中,这 4个分区就是 4个主分区。第一个扇区中的数据信息如图 所示。

为什么第一个扇区最多只能创建出 4个分区?于是为了解决分区个数不够
的问题,可以将第一个扇区的分区表中 16字节(原本要写入主分区信息)的空间(称之为扩展分区)拿出来指向另外一个分区。也就是说,扩展分区其实并不是一个真正的分区,而更像
是一个占用 16字节分区表空间的指针 一个指向另外一个分区的指针。这一来, 用户 一般会选择使用 3个主分区加 1个扩展分区的方法,然后在扩展分区中创建出数个逻辑分区,从而来满足多分区(大于 4个)的需求。当然,就目前来讲大家只要明白为什么主分区不能超过 4个就足够了。主分区、扩展分区、逻辑分区可以像图 6-4那样来规划。

总结:

硬件设备(fdisk进行分区)–》分区(mkfs进行格式化)–》格式化后的文件系统–》挂载(mount)–》df -h命令来查看挂载状态和硬盘使用量信息。–》写入fstab永久挂载

3.挂载硬件设备

3.1 mount与umount

mount命令用于挂载文件系统,格式为“ mount 文件系统 挂载目录”。
常用:mount -a 挂载所有在/etc/fstab中定义的文件系统
但是这样子只是暂时的挂载,重启后就会失效,所以要将挂载信息写在/etc/fstab才能永久挂载
格式:“设备文件 挂载目录 格式类型 权限选项 是否备份 是否自检 ”

umount命令用于撤销已经挂载的设备文件,格式为“ umount [挂载点 /设备文件 ]”。
我们挂载文件系统的目的是为了使用硬件资源,而卸载文件系统就意味不再使用硬件的设备资源;相对应地,挂载操作就是把硬件设备与目录进行关联的动作,因此卸载操作只需要说明想要取消关联的设备文件或挂载目录的其中一项即可

3.2 fdisk命令

fdisk命令用于管理磁盘分区,格式为“ fdisk [磁盘名称 ]”,它提供了集添加、删除、转换分区等功能于一身的“一站式分区服务”。

3.3 du命令

du命令,其格式为“ du [选项 ] [文件 ]”。用于查看文件数据占用量。简单来说,该命令就是用来查看一个或多个文件占用了多大的硬盘空间。我们还可以使用 du -sh /*命令来查看在 Linux系统根目录下所有一级目录分别占用的空间大小。

[root@server12 ~]# mkdir /newfs
[root@server12 ~]# cp -rf /etc/* /newfs/
[root@server12 ~]# du -sh /newfs/
30M     /newfs/

3.4 示例

[root@server12 ~]# fdisk /dev/sd
/dev/sda  /dev/sdb
[root@server12 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xac22f991.Command (m for help): pDisk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xac22f991Device Boot      Start         End      Blocks   Id  SystemCommand (m for help): n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +2G
Partition 1 of type Linux and of size 2 GiB is setCommand (m for help): pDisk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xac22f991Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  LinuxCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.
[root@server12 ~]#[root@server12 ~]# partprobe
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
[root@server12 ~]# file /dev/sdb1
/dev/sdb1: block special
[root@server12 ~]#
[root@server12 ~]#

格式化并挂载

[root@server12 ~]# mkfs.
mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.xfs
mkfs.cramfs  mkfs.ext3    mkfs.minix
[root@server12 ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=131072 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=524288, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0[root@server12 ~]# mount /dev/sdb1 /newfs/
[root@server12 ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root  8.0G  1.5G  6.6G  19% /
devtmpfs               902M     0  902M   0% /dev
tmpfs                  912M     0  912M   0% /dev/shm
tmpfs                  912M  8.6M  904M   1% /run
tmpfs                  912M     0  912M   0% /sys/fs/cgroup
/dev/sda1             1014M  139M  876M  14% /boot
tmpfs                  183M     0  183M   0% /run/user/0
/dev/sdb1              2.0G   33M  2.0G   2% /newfs[root@server12 ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Oct 24 12:55:03 2019
#
# 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/rhel-root   /                       xfs     defaults        0 0
UUID=1d26f703-cec1-4699-9508-ec2425aeed3d /boot                   xfs     defaults        0 0
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
/dev/sdb1       /newfs  xfs     0       0

4.添加交换分区

[root@server12 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Command (m for help): n
Partition type:p   primary (1 primary, 0 extended, 3 free)e   extended
Select (default p):
Using default response p
Partition number (2-4, default 2):
First sector (4196352-20971519, default 4196352):
Using default value 4196352
Last sector, +sectors or +size{K,M,G} (4196352-20971519, default 20971519): +2G
Partition 2 of type Linux and of size 2 GiB is setCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

格式化mkswap并挂载

[root@server12 ~]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=0a58fcce-74e0-4876-805d-3def68ae3e81
[root@server12 ~]# free -mtotal        used        free      shared  buff/cache   available
Mem:           1823         130        1505           8         186        1510
Swap:          1023           0        1023
[root@server12 ~]# swapon /dev/sdb2
[root@server12 ~]# free -mtotal        used        free      shared  buff/cache   available
Mem:           1823         132        1504           8         186        1509
Swap:          3071           0        3071[root@server12 ~]# vim /etc/fstab
/dev/sdb2       swap    swap    defaults        0       0

5.磁盘容量配额

quota命令进行磁盘容量配额管理,从而限制用户的硬盘可用容量或所能创建的最大文件个数。 quota命令还 有软限制和硬限制的功能。

软限制:当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用。

硬限制:当达到硬限制时会提示用户,且强制终止用户的操作。

接下来创建一个用于检查quota磁盘容量配额效果的用户 xiaojuanmao,并针对 /boot目录增加其他人的写权限,保证用户能够正常写入数据:

[root@server12 ~]# chmod -Rf o+w /boot/

5.1 xfs quota 命令

xfs quota命令是一个专门针对 XFS文件系统来管理 quota磁盘容量配额服务而设计的命令,格式为“ xfs_quota [参数 ] 配额 文件系统”。其中, ,-c参数用于以参数的形式设置要执行的命令;-x参数是专家模式,让运维人员能够对 quota服务进行更多复杂的配置。

使用 xfs quota命令来设置用户xiaojuanmao对 /boot目录的 quota磁盘容量配额。具体的限额控制包括:硬盘使用量的软限制和硬限制分别为 3MB和 6MB;创建文件数量的软限制和硬限制分别为 3个和 6个。

[root@server12 ~]# vim /etc/fstab
UUID=1d26f703-cec1-4699-9508-ec2425aeed3d /boot                   xfs     defaults,uquota        0 0
###需要在加一个uquota的参数
[root@server12 ~]# xfs_quota -x -c 'limit bsoft=3m bhard=6m  isoft=3 ihard=6 xiaojuanmao'  /boot[root@server12 ~]# xfs_quota -x -c report  /boot
User quota on /boot (/dev/sda1)Blocks
User ID          Used       Soft       Hard    Warn/Grace
---------- --------------------------------------------------
root           108464          0          0     00 [--------]
xiaojuanmao          0       3072       6144     00 [--------]

切换用户测试:当配置好上述的各种软硬限制后,尝试切换到这个普通用户,然后分别尝试创建一个体积为 5MB和 8MB的文件。可以发现,在创建 8MB的文件时受到了系统限制:

[xiaojuanmao@server12 ~]$ dd if=/dev/zero of=/boot/xiaojuanmao bs=5M count=1
1+0 records in
1+0 records out
5242880 bytes (5.2 MB) copied, 0.00422863 s, 1.2 GB/s
[xiaojuanmao@server12 ~]$ dd if=/dev/zero of=/boot/xiaojuanmao bs=8M count=1
dd: error writing ‘/boot/xiaojuanmao’: Disk quota exceeded
1+0 records in
0+0 records out
6291456 bytes (6.3 MB) copied, 0.0151422 s, 415 MB/s

5.2 edquota 命令

edquota命令用于编辑用户的 quota配额限制,格式为“ edquota [参数 ] [用户 ] ”。在为用户设置了 quota磁盘容量配额限制后,可以使用 edquota命令按需修改限额的数值。其中, ,-u参数表示要针对哪个用户进行设置; ;-g参数表示要针对哪个用户组进行设置。 edquota命令会调用 Vi或 Vim编辑器来让 root管理员修改要限制的具体细节。

-u 设置用户的磁盘配额,这是预设的参数。
-g 设置群组的磁盘配额。
-p<源用户名称> 将源用户的磁盘配额设置套用至其他用户或群组。
-t 设置宽限期限。

下面把用户 xiaojuanmao的硬盘使用量的硬限额从 5MB提升到 8MB
备注:如果提示 edquota 没有此命令,安装 quota 包;

[root@server12 ~]#  yum install -y  quota[root@server12 ~]# quotaon /dev/sda1
quotaon: Enable XFS group quota accounting during mount
quotaon: Enforcing user quota already on /dev/sda1[root@server12 ~]# edquota -u xiaojuanmao
Disk quotas for user xiaojuanmao (uid 1005):Filesystem                   blocks       soft       hard     inodes     soft     hard/dev/sda1                      6144       3072       8192          1        3        6[xiaojuanmao@server12 ~]$ dd if=/dev/zero of=/boot/xiaojuanmao bs=8M count=1
1+0 records in
1+0 records out
8388608 bytes (8.4 MB) copied, 0.0229054 s, 366 MB/s

quotaon 命令

开启指定文件系统的配额功能;也适用于 xfs文件系统;

例如: quotaon /dev/sdb1

quotaoff命令

关闭指定文件系统的配额功能;也适用于 xfs文件系统;

例如: quotaoff /dev/sdb1

6.软硬方式链接

硬链接(hard link):可以将它理解为一个“指向原始文件 inode的指针”,系统不为它分配独立的 inode和文件。所以,硬链接文件与原始文件其实是同一个文件,只是名字不同。我们每添加一个硬链接,该文件的 inode连接数就会增加 1;而且只有当该文件的 inode连接数为 0时,才算彻底将它删除。换言之,由于硬链接实际上是指向原文件 inode的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。需要注意的是,由于技术的局限性,我们不能跨 分区对 目录文件进行链接。

软链接(也称为符号链接【symbolic link】)仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接文件也将失效,从这一点上来说与 Windows系统中的“快捷方式”具有一样的性质。

ln命令

ln命令用于创建链接文件,格式为“ ln [选项 ] 目标”,其可用的参数以及作用如表

为了更好地理解软链接、硬链接的不同性质,接下来创建一个类似于Windows系统中快捷方式的软链接。这样,当原始文件被删除后,就无法读取新建的链接文件了。

[root@server12 ~]# echo "welcome to xiaojuanmao com" >readme.txt
[root@server12 ~]# ln -s readme.txt readit.txt
### 创建软链接
[root@server12 ~]# cat readme.txt
welcome to xiaojuanmao com
[root@server12 ~]# cat readit.txt
welcome to xiaojuanmao com
[root@server12 ~]# ls -l readme.txt
-rw-r--r--+ 1 root root 27 May  2 03:21 readme.txt
###查看链接是否成功,注意看此时原始文件的链接数为1[root@server12 ~]# rm -f readme.txt
[root@server12 ~]# cat readit.txt
cat: readit.txt: No such file or directory
###删除原始文件后链接文件不能继续访问

接下来针对一个原始文件创建一个硬链接,即相当于针对原始文件的硬盘存储位置创建了一个指针,这样一 来,新创建的这个硬链接就不再依赖于原始文件的名称等信息,也不会因为原始文件的删除而导致无法读取。同时可以看到创建硬链接后,原始文件的硬盘链接数量增加到了 2。

[root@server12 ~]# echo "welcome to xiaojuanmao world" >readme.txt
[root@server12 ~]# ln readme.txt readit.txt
[root@server12 ~]# cat readme.txt
welcome to xiaojuanmao world
[root@server12 ~]# cat readit.txt
welcome to xiaojuanmao world
###创建硬链接
[root@server12 ~]# ls -l readme.txt
-rw-r--r--. 2 root root 29 May  2 03:29 readme.txt
[root@server12 ~]# rm -rf readme.txt
[root@server12 ~]# cat readit.txt
welcome to xiaojuanmao world
###删除源文件之后还是可以继续访问链接文件

卷毛崽|Linux自学|存储结构与磁盘划分相关推荐

  1. 《Linux就该这么学》培训笔记_ch06_存储结构与磁盘划分

    <Linux就该这么学>培训笔记_ch06_存储结构与磁盘划分 文章最后会post上书本的笔记照片. 文章主要内容: Linux系统的文件存储结构(FHS标准) 物理设备命名规则(udev ...

  2. 6.存储结构与磁盘划分

    第6章 存储结构与磁盘划分 章节简述: Linux系统中颇具特色的文件存储结构常常搞得新手头晕脑胀,本章将从Linux系统中的文件存储结构开始,讲述文件系统层次化标准(FHS,Filesystem H ...

  3. Linux基础(存储结构和磁盘划分)

    一切从"/"开始 在Linux系统中,目录.字符设备.块设备.套接字.打印机等都被抽象成了文件,一切皆为件 与windows操作系统不同,Linux系统内不存在C/D/E/F盘等, ...

  4. linux 存储结构与磁盘划分详解

    Linux系统中颇具特色的文件存储结构常常搞得新手头晕脑胀,本章将从Linux系统中的文件存储结构开始,讲述文件系统层次化标准(FHS,Filesystem Hierarchy Standard).u ...

  5. 《Linux就该这么学》 第6章 存储结构与磁盘划分

    6.1 一切从"/"开始Linux系统中的一切文件都是从"根(/)"目录开始的,并按照文件系统层次化标准(FHS)采用树形结构来存放文件,以及定义了常见目录的用 ...

  6. 存储结构和磁盘划分(基于RedHat7)

    转载来自:http://www.linuxprobe.com/chapter-06.html(良心之作) 章节简述: Linux系统中颇具特色的文件存储结构常常搞的新手头晕,本章节将从Linux系统中 ...

  7. 第五天学习--存储结构与磁盘划分

    章节简述: Linux系统中颇具特色的文件存储结构常常搞得新手头晕脑胀,本章将从Linux系统中的文件存储结构开始,讲述文件系统层次化标准(FHS,Filesystem Hierarchy Stand ...

  8. linux——存储结构与磁盘划分。

    6.1 一切从"/"开始 Linux系统中常见的目录名称以及相应内容 目录名称 应放置文件的内容 /boot 开机所需文件-内核.开机菜单以及所需配置文件等 /dev 以文件形式存 ...

  9. linux物理硬盘和sd的对应关系_Linux物理存储结构以及磁盘划分

    在上一篇讲解mount命令的时候,有提到过挂载光驱或U盘,那么我们如何知道光驱就是在/dev/cdrom呢?在Linux系统中一切都是文件,硬件设备也不例外.既然是文件,就必须有文件名称.系统内核中的 ...

最新文章

  1. 面试问了这两个问题,很多人的回答都自相矛盾
  2. 知乎的 Flink 数据集成平台建设实践
  3. php声明一个类的关键字,php中怎么实例化一个类
  4. 揭开netty神秘面纱_Netty 源码(ChannelHandler 死磕)
  5. python群发邮箱软件_maily:命令行邮件(批量)发送工具
  6. SpringBoot------全局异常捕获
  7. php 余额冻结设计_加密货币交易所:微服务架构设计
  8. [paper reading] SSD
  9. 树莓派 之 关于用途
  10. Chrome启动参数大全
  11. APP性能---用adb命令测试Android中APP的FPS
  12. 关于memset函数和赋值0x3f,2021-5-5
  13. tail关键字查询日志
  14. 《天长地久》写照真实生活为何被影迷埋没不被欣赏
  15. 关于npm i 的那点事
  16. 嵌入式音频架构 - AudioWeaver模块开发
  17. python scapy2.3 在windows上的安装
  18. mongo数据库取并集
  19. This iPhone 8 Plus (Model A1864, A1897, A1898, A1899) is running iOS 12.2 (16E227)
  20. 如何让BERT拥有视觉感知能力?两种方式将视频信息注入BERT

热门文章

  1. 递归:这帮小兔子崽子、汉诺塔游戏+习题复习
  2. java自定义maven插件_自定义Maven插件
  3. 训练神经网络的常用方法之共轭梯度法
  4. 流媒体服务器 性能,流媒体服务器性能
  5. Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包
  6. 2011年网页设计发展趋势
  7. 计算机学习常用网站总结
  8. arcgis pro 2.5 安装教程
  9. coffeescript(javascript) this 的理解
  10. Objective-C修改运动步数