Linux笔记09(存储结构与管理硬盘)

理论知识有点多,加油!node

从'/'开始

第6章 存储结构与管理硬盘第6章 存储结构与管理硬盘

相关目录做用linux

目录名称 应放置文件的内容
/boot 开机所需文件—内核、开机菜单以及所需配置文件等
/dev 以文件形式存听任何设备与接口
/etc 配置文件
/home 用户主目录
/bin 存放单用户模式下还能够操做的命令
/lib 开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数
/sbin 开机过程当中须要的命令
/media 用于挂载设备文件的目录
/opt 放置第三方的软件
/root 系统管理员的家目录
/srv 一些网络服务的数据文件目录
/tmp 任何人都可使用的“共享”临时目录
/proc 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等
/usr/local 用户自行安装的软件
/usr/sbin Linux系统开机时不会使用到的软件/命令/脚本
/usr/share 帮助与说明文件,也可放置共享文件
/var 主要存放常常变化的文件,如日志
/lost+found 当文件系统发生错误时,将一些丢失的文件片断存放在这里

相对路径和绝对路径

路径指的是如何定位到某个文件,分为绝对路径与相对路径web

  1. 绝对路径指的是从根目录(/)开始写起的文件或目录名称,
  2. 相对路径则指的是相对于当前路径的写法。

物理设备的命名规则

硬件设备 文件名称
IDE设备 /dev/hd[a-d]
SCSI/SATA/U盘 /dev/sd[a-z]
virtio设备 /dev/vd[a-z]
软驱 /dev/fd[0-1]
打印机 /dev/lp[0-15]
光驱 /dev/cdrom
鼠标 /dev/mouse
磁带机 /dev/st0或/dev/ht0

主分区和逻辑分区shell

主分区或扩展分区的编号从1开始,到4结束;vim

逻辑分区从编号5开始。服务器

第6章 存储结构与管理硬盘第6章 存储结构与管理硬盘

文件系统与数据资料

主要有Ext 二、Ext 三、Ext 四、XFSmarkdown

Ext4

Ext3的改进版本,做为RHEL 6系统中的默认文件管理系统,它支持的存储容量高达1EB(1EB=1,073,741,824GB),且可以有无限多的子目录。另外,Ext4文件系统可以批量分配block块,从而极大地提升了读写效率。如今不少主流服务器也会使用。 网络

XFS

是一种高性能的日志文件系统,并且是RHEL 7/8中默认的文件管理系统,它的优点在发生意外宕机后尤为明显,便可以快速地恢复可能被破坏的文件,并且强大的日志功能只用花费极低的计算和存储性能。而且它最大可支持的存储容量为18EB,这几乎知足了全部需求。 app

硬盘在格式化 :

该文件的访问权限(read、write、execute);socket

该文件的全部者与所属组(owner、group);

该文件的大小(size);

该文件的建立或内容修改时间(ctime);

该文件的最后一次访问时间(atime);

该文件的修改时间(mtime);

文件的特殊权限(SUID、SGID、SBIT);

该文件的真实数据地址(point)

block块

一 个inode的默认大小仅为128字节,记录一个block则消耗4字节。当文件的inode被写满后,Linux系统会自动分配出一个block块,专门用于像inode那样记录其余block块的信息,这样把各个block块的内容串到一块儿,就可以让用户读到完整的文件内容了。

两种常见状况

状况1:文件很小(1KB),但依然会占用一个block,所以会潜在地浪费3KB。

状况2:文件很大(5KB),那么会占用两个block(5KB-4KB后剩下的1KB也要占用一个block)。

第6章 存储结构与管理硬盘第6章 存储结构与管理硬盘

挂载硬件设备

mount命令

用于挂载文件系统

格式为“mount 文件系统 挂载目录”

参数 做用
-a 挂载全部在/etc/fstab中定义的文件系统
-t 指定文件系统的类型
# 挂载到目录
[root@linuxprobe ~]# mount /dev/sdb2 /backup

# 挂载到网络
# 查看UUID值
[root@localhost ~]# blkid
/dev/sda3: UUID="1253ac5b-eaed-4c4c-808d-09fb4828358f" TYPE="xfs" PARTUUID="0afc9026-03"
/dev/sda1: UUID="bcc55e4d-0854-44a8-9449-dad12374a6d3" TYPE="xfs" PARTUUID="0afc9026-01"
/dev/sda2: UUID="45a308e8-b622-4f24-9ea2-d4f473388981" TYPE="swap" PARTUUID="0afc9026-02"
# 根据UUID挂载
[root@linuxprobe ~]# mount UUID=bcc55e4d-0854-44a8-9449-dad12374a6d3 /backup

umount命令

umount命令用于卸载设备或文件系统

格式为:“umount [设备文件/挂载目录]”

[root@linuxprobe ~]# umount /dev/sdb2

/etc/fstab文件

若是想将文件系统为ext4的硬件设备/dev/sdb2在开机后自动挂载到/backup目录上,并保持默认权限且无需开机自检,就须要在/etc/fstab文件中写入下面的信息,这样在系统重启后也会成功挂载。

字段 意义
设备文件 通常为设备的路径+设备名称,也能够写惟一识别码(UUID,Universally Unique Identifier)
挂载目录 指定要挂载到的目录,需在挂载前建立好
格式类型 指定文件系统的格式,好比Ext三、Ext四、XFS、SWAP、iso9660(此为光盘设备)等
权限选项 若设置为defaults,则默认权限为:rw, suid, dev, exec, auto, nouser, async
是否备份 若为1则开机后使用dump进行磁盘备份,为0则不备份
是否自检 若为1则开机后自动进行磁盘自检,为0则不自检
[root@linuxprobe ~]# vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Jul 21 05:03:40 2020
#
# 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.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rhel-root                     /        xfs     defaults    0 0
UUID=812b1f7c-8b5b-43da-8c06-b9999e0fe48b /boot    xfs     defaults    0 0
/dev/mapper/rhel-swap                     swap     swap    defaults    0 0
/dev/sdb2                                 /backup  ext4    defaults    0 0

写入到/etc/fstab文件中的设备信息并不会当即生效,须要使用mount -a参数进行自动挂载:

[root@linuxprobe ~]# mount -a

df命令

用于已挂载的磁盘空间使用状况

语法格式为:“df -h”

[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        890M     0  890M   0% /dev
tmpfs           904M     0  904M   0% /dev/shm
tmpfs           904M  9.4M  894M   2% /run
tmpfs           904M     0  904M   0% /sys/fs/cgroup
/dev/sda3        18G  4.4G   14G  25% /
/dev/sda1       295M  144M  152M  49% /boot
tmpfs           181M   16K  181M   1% /run/user/42
tmpfs           181M  4.0K  181M   1% /run/user/0

lsblk命令

查看已挂载的磁盘空间使用状况

[root@localhost ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  300M  0 part /boot
├─sda2   8:2    0    2G  0 part [SWAP]
└─sda3   8:3    0 17.7G  0 part /
sdb      8:16   0   20G  0 disk 
sr0     11:0    1 1024M  0 rom  
sr1     11:1    1 1024M  0 rom

du命令

查看分区或目录所占用的磁盘容量大小

语法格式为:“du -sh 目录名称”

[root@localhost ~]# du -sh /*
0   /bin
126M    /boot
0   /dev
28M /etc
12K /home
0   /lib
0   /lib64
0   /media
0   /MMX
0   /mnt
0   /opt
0   /proc
84M /root
9.4M    /run
0   /sbin
0   /srv
0   /sys
52K /tmp
3.9G    /usr
139M    /var

磁盘分区、挂载练习

一、练习

步骤:

一、安装硬盘

二、在/dev/sd*找到新安装硬盘,通常没有分区,好比/dev/sdb,不存在/dev/sdb【n】等

三、fdisk命令新建分区

四、mkfs命令格式化分区

五、新建目录【分区好后挂载上面】mkdir /XXX

六、使用mount命令,mount /dev/sd【x】 步骤5目录

七、编辑注册文件/etc/fstab

八、mount -a自动挂载

九、df -h查看挂载结果

十、reboot重启,再次使用df -h查看是否开机自动挂载

[root@localhost ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb
[root@localhost ~]# mkfs
mkfs         mkfs.ext2    mkfs.ext4    mkfs.minix   mkfs.vfat    
mkfs.cramfs  mkfs.ext3    mkfs.fat     mkfs.msdos   mkfs.xfs     
[root@localhost ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.32.1).
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.
Created a new DOS disklabel with disk identifier 0x2c7d0518.

Command (m for help): m

Help:

  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): +5G

Created a new partition 1 of type 'Linux' and of size 5 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

[root@localhost ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb  /dev/sdb1
[root@localhost ~]# mkdir /MMX
[root@localhost ~]# mkfs.xfs /dev/sdb1 
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=1310720, 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@localhost ~]# mount /dev/sdb1 /MMX
[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        890M     0  890M   0% /dev
tmpfs           904M     0  904M   0% /dev/shm
tmpfs           904M  9.4M  894M   2% /run
tmpfs           904M     0  904M   0% /sys/fs/cgroup
/dev/sda3        18G  4.4G   14G  25% /
/dev/sda1       295M  144M  152M  49% /boot
tmpfs           181M   16K  181M   1% /run/user/42
tmpfs           181M  4.0K  181M   1% /run/user/0
/dev/sdb1       5.0G   68M  5.0G   2% /MMXsks.

重启以后:

[root@localhost ~]# tail -n 5 /etc/fstab 
#
UUID=1253ac5b-eaed-4c4c-808d-09fb4828358f /                       xfs     defaults        0 0
UUID=bcc55e4d-0854-44a8-9449-dad12374a6d3 /boot                   xfs     defaults        0 0
UUID=45a308e8-b622-4f24-9ea2-d4f473388981 swap                    swap    defaults        0 0
/dev/sdb1 /MMX xfs defaults 0 0

#顺利自动挂载上去!
[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        890M     0  890M   0% /dev
tmpfs           904M     0  904M   0% /dev/shm
tmpfs           904M  9.4M  894M   2% /run
tmpfs           904M     0  904M   0% /sys/fs/cgroup
/dev/sda3        18G  4.4G   14G  25% /
/dev/sdb1       5.0G   68M  5.0G   2% /MMX
/dev/sda1       295M  144M  152M  49% /boot
tmpfs           181M   16K  181M   1% /run/user/42
tmpfs           181M  4.0K  181M   1% /run/user/0

二、排错

编辑/etc/fstab错误,致使SSH没法链接

一、编辑的/etc/fstab文件以下,xfs格式错误,写成了ext4

# 
# /etc/fstab
# Created by anaconda on Sat Jul  3 11:06:41 2021
#
# 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.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=1253ac5b-eaed-4c4c-808d-09fb4828358f /                       xfs     defaults        0 0
UUID=bcc55e4d-0854-44a8-9449-dad12374a6d3 /boot                   xfs     defaults        0 0
UUID=45a308e8-b622-4f24-9ea2-d4f473388981 swap                    swap    defaults        0 0
/dev/sdb1 /MMX ext4 defaults 0 0

二、此时已经没法链接SSH

[C:\~]$ 

Connecting to 192.168.180.128:22...
Could not connect to '192.168.180.128' (port 22): Connection failed.

Type `help' to learn how to use Xshell prompt.

三、虚拟机界面以下

image20210711200842191.png

四、输入密码以后,查看IP地址,发现有问题

image20210711200919786.png

五、删除/etc/fstab最后编辑的哪一行,重启reboot

image20210711201019247.png
image20210711201031826.png

六、恢复正常,SSH已经能够链接

image20210711201123072.png
image20210711201216881.png

七、从新编辑/etc/fstab目录

# 
# /etc/fstab
# Created by anaconda on Sat Jul  3 11:06:41 2021
#
# 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.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=1253ac5b-eaed-4c4c-808d-09fb4828358f /                       xfs     defaults        0 0
UUID=bcc55e4d-0854-44a8-9449-dad12374a6d3 /boot                   xfs     defaults        0 0
UUID=45a308e8-b622-4f24-9ea2-d4f473388981 swap                    swap    defaults        0 0
/dev/sdb1 /MMX xfs defaults 0 0
~

八、重启看效果

[root@localhost ~]# reboot
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(红帽8模拟器) at 20:13:30.

Type `help' to learn how to use Xshell prompt.
[C:\~]$ 

Connecting to 192.168.180.128:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Activate the web console with: systemctl enable --now cockpit.socket

Last login: Sun Jul 11 05:11:49 2021 from 192.168.180.1
[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        890M     0  890M   0% /dev
tmpfs           904M     0  904M   0% /dev/shm
tmpfs           904M  9.4M  894M   2% /run
tmpfs           904M     0  904M   0% /sys/fs/cgroup
/dev/sda3        18G  4.4G   14G  25% /
/dev/sdb1       5.0G   68M  5.0G   2% /MMX
/dev/sda1       295M  144M  152M  49% /boot
tmpfs           181M   16K  181M   1% /run/user/42
tmpfs           181M  4.0K  181M   1% /run/user/0

创建交换分区

SWAP交换分区是一种经过在硬盘中预先划分必定的空间,而后将把内存中暂时不经常使用的数据临时存放到硬盘中,以便腾出物理内存空间让更活跃的程序服务来使用的技术,其设计目的是为了解决真实物理内存不足的问题。

一、查看系统Swap分区大小

[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:          1.8Gi       881Mi       113Mi       9.0Mi       810Mi       732Mi
Swap:         2.0Gi          0B       2.0Gi

二、查看sdb使用状况(还剩10G)

[root@localhost ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  300M  0 part /boot
├─sda2   8:2    0    2G  0 part [SWAP]
└─sda3   8:3    0 17.7G  0 part /
sdb      8:16   0   20G  0 disk 
├─sdb1   8:17   0    5G  0 part /MMX
└─sdb2   8:18   0    5G  0 part 
sr0     11:0    1 1024M  0 rom  
sr1     11:1    1 1024M  0 rom

三、分出5G给Swap(5+2=7G)

[root@localhost ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): m

Help:

  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table

Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): 
First sector (20973568-41943039, default 20973568): 
Last sector, +sectors or +size{K,M,G,T,P} (20973568-41943039, default 41943039): +5G

Created a new partition 3 of type 'Linux' and of size 5 GiB.

Command (m for help): t
Partition number (1-3, default 3): 3
Hex code (type L to list all codes): 82

Changed type of partition 'Linux' to 'Linux swap / Solaris'.

Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: dos
Disk identifier: 0x2c7d0518

Device     Boot    Start      End  Sectors Size Id Type
/dev/sdb1           2048 10487807 10485760   5G 83 Linux
/dev/sdb2       10487808 20973567 10485760   5G 83 Linux
/dev/sdb3       20973568 31459327 10485760   5G 82 Linux swap / Solaris

Command (m for help): w
The partition table has been altered.
Syncing disks.

三、交换分区命令mkswap和swapon

mkswap 挂载交换分区路径

swapon 交换分区路径

[root@localhost ~]# mkswap /dev/sdb3
Setting up swapspace version 1, size = 5 GiB (5368705024 bytes)
no label, UUID=3fbdf0fd-e425-448f-a9a1-c8a6ef5962de

# 激活前
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:          1.8Gi       884Mi       108Mi       9.0Mi       813Mi       730Mi
Swap:         2.0Gi          0B       2.0Gi
[root@localhost ~]# swapon /dev/sdb2 

# 激活后
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:          1.8Gi       888Mi       104Mi       9.0Mi       813Mi       726Mi
Swap:         7.0Gi          0B       7.0Gi

四、写入/etc/fstab

[root@localhost ~]# vim /etc/fstab 
[root@localhost ~]# tail -n 5 /etc/fstab 
UUID=1253ac5b-eaed-4c4c-808d-09fb4828358f /                       xfs     defaults        0 0
UUID=bcc55e4d-0854-44a8-9449-dad12374a6d3 /boot                   xfs     defaults        0 0
UUID=45a308e8-b622-4f24-9ea2-d4f473388981 swap                    swap    defaults        0 0
/dev/sdb1 /MMX xfs defaults 0 0
/dev/sdb3 swap swap defaults 0 0

五、重启再次查看(错误)

[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:          1.8Gi       768Mi       546Mi       9.0Mi       490Mi       848Mi
Swap:         2.0Gi          0B       2.0Gi

# 发现这个,好像把sdb2挂载上去了……【mkswap /dev/sdb3】

# 从新执行一次命令
[root@localhost ~]# mkswap /dev/sdb3
[root@localhost ~]# swapon /dev/sdb3 
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:          1.8Gi       767Mi       544Mi       9.0Mi       494Mi       849Mi
Swap:         7.0Gi          0B       7.0Gi

# 果真……
[root@localhost ~]# vim /etc/fstab 

# 
# /etc/fstab
# Created by anaconda on Sat Jul  3 11:06:41 2021
#
# 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.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=1253ac5b-eaed-4c4c-808d-09fb4828358f /                       xfs     defaults        0 0
UUID=bcc55e4d-0854-44a8-9449-dad12374a6d3 /boot                   xfs     defaults        0 0
UUID=45a308e8-b622-4f24-9ea2-d4f473388981 swap                    swap    defaults        0 0
/dev/sdb1 /MMX xfs defaults 0 0
/dev/sdb3 swap swap defaults 0 0
# 加上去把,一块儿12G
/dev/sdb2 swap swap defaults 0 0

六、修改完毕,再次重启

[C:\~]$ 

Connecting to 192.168.180.128:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Activate the web console with: systemctl enable --now cockpit.socket

Last login: Sun Jul 11 06:25:17 2021 from 192.168.180.1
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:          1.8Gi       769Mi       564Mi       9.0Mi       472Mi       839Mi
Swap:          11Gi          0B        11Gi
相关文章
相关标签/搜索