[Linux] ディスク管理とファイル システム

1. ディスクの基本

1.1 ディスク構造

硬盘的物理结构

大皿: ハードディスクには複数のプラッターがあり、大皿あたり 2 面

磁気ヘッド:片側に 1 つのヘッド

ここに画像の説明を挿入

硬盘的数据结构

セクタ: ディスクは複数のセクターに分割され、各セクターは512バイトを格納データ、ハードディスクの最小記憶単位。

追跡:同じ大皿異なる半径の同心円、ディスクの表面に磁気ヘッドによって描かれた円形の軌跡です。

シリンダー:異なるディスクの半径は同じですで構成される円筒面同じ半径の円の複数のトラックで構成されています。

ここに画像の説明を挿入

  • ハードディスクの記憶容量=ヘッド数×トラック数(シリンダー)×1トラックあたりのセクター数×1セクターあたりのバイト数(512バイト)

  • 使えるシリンダー/ヘッド/セクター来て独自のポジショニングディスク上のすべてのリージョン

  • ディスク インターフェイス タイプ

● IDE、SATA、SCSI、SAS、ファイバーチャネル

インターフェイス タイプ 特徴
IDE パラレルデータケーブルマザーボードとハードディスクを接続する、干渉防止が不十分であり、ケーブルが多くのスペースを占めるため、コンピューターの内部放熱に役立ちません。徐々にSATAに置き換えられています
SATA 強力な抗干渉、ホットプラグおよびその他の機能、高速、強力なエラー修正機能をサポート
SCSI 小型コンピュータシステムインターフェース、SCSIハードディスクなど幅広くワークステーション クラスの PC とサーバーデータ転送中の CPU 使用率が低く、速度が速い、ホットスワップなどをサポート
SAS これは、SATA ハードディスクと同じ新世代の SCSI テクノロジーです。より高速な伝送速度のためにシリアル技術を採用、最大 6Gb/秒

1.2MBR

マスター ブート レコード (MBR: マスター ブート レコード)

MBRはハードディスクにあります最初の物理セクターで

MBR には、ハードディスクのマスター ブート プログラムとハードディスク パーティション テーブルが含まれています。

●パーティションテーブル4 つのパーティション レコード領域があり、各パーティション レコード領域は 16 バイトを占有します。

● リナックス中将ハードディスクやパーティションなどのデバイスはファイルとして表されます

ここに画像の説明を挿入

1.3 ディスクのパーティション構造

ハードディスクにプライマリ パーティションの数は 4 つだけです

プライマリ パーティションと拡張パーティションのシーケンス番号は 1 ~ 4 に制限されています

拡張パーティションは論理パーティションに分割されます

論理区画のシリアル番号は常に 5 から始まります

ここに画像の説明を挿入

2. ファイルシステムの種類

2.1 XFS ファイルシステム

●収納ファイルとディレクトリのデータの分割

高性能のジャーナリング ファイル システムで、特に大きなファイルの処理に適しています、数百万テラバイトのストレージスペースをサポートできます

CentOS 7 システムでデフォルトで使用されるファイル システム

2.2 SWAP、スワップファイルシステム

● Linux システム用のスワップ パーティションを作成します。

●一般物理メモリの1.5~2倍に設定

Linux でサポートされているその他のファイルシステム タイプ

●EXT4、FAT32、NTFS、LVM

注意: CentOS 6使用されるデフォルトのファイル システムは次のとおりです。EXT4/3;CentOS 7使用されるデフォルトのファイル システムは次のとおりです。XFS.

2.3 fdisk コマンド

fdisk コマンド

ディスク パーティションの表示または管理

fdisk -l [ディスク デバイス] または fdisk [ディスク デバイス]

交互模式中的常用指令

m、p、n、d、t、w、q

[root@clr ~]# fdisk -l (/dev/sda) #查看系统中磁盘分区情况,sd表示使用SCSI设备

磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00099d02

   设备 Boot      Start         End      Blocks(块大小)   Id(系统对应ID号)  System(系统类型)
/dev/sda1   *(引导分区)     2099200    79771647    38836224   83  Linux
/dev/sda2       117698560   125829119     4065280    5  Extended
/dev/sda5       117700608   125829119     4064256   82  Linux swap / Solaris(交换分区)

2.4 新しいハードディスクを作成する

新增一块硬盘,步骤如下所示:

設定 - ハードディスク - 追加;

ここに画像の説明を挿入

[ハードディスク] を選択し、[次へ] を選択します。

ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入

ディスク サイズを 40GB に変更します。

ここに画像の説明を挿入

ファイナライズします。

ここに画像の説明を挿入

再起動して再起動し、リフレッシュ後に新しく追加されたハードディスク パーティションを確認します。

[root@clr ~]# fdisk -l

磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区 #新增加的第二块硬盘sdb,b代表是第二块
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00099d02

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *     2099200    79771647    38836224   83  Linux
/dev/sda2       117698560   125829119     4065280    5  Extended
/dev/sda5       117700608   125829119     4064256   82  Linux swap / Solaris

ディスク パーティションのステータスをオンラインで更新します。

[root@clr ~]# echo "- - -" > /sys/class/scsi_host/host0/scan  #在线刷新磁盘命令
[root@clr ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@clr ~]# echo "- - -" > /sys/class/scsi_host/host2/scan

[root@clr ~]# fdisk -l

磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00099d02

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *     2099200    79771647    38836224   83  Linux
/dev/sda2       117698560   125829119     4065280    5  Extended
/dev/sda5       117700608   125829119     4064256   82  Linux swap / Solaris

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区 #新增加的第三块磁盘分区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

ディスク /dev/sdb を再度パーティション分割します。

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

3.ファイルシステムを作成する

3.1 mkfs

新しいハードディスクを分割した後、分割する必要がありますフォーマットする(つまり、ファイル システムを作成します)、それを Linux システムにマウントします。指定したディレクトリその後、ファイルやディレクトリなどのデータを保存するために使用できます。

mkfs命令
ここに画像の説明を挿入
示例
ここに画像の説明を挿入

[root@clr ~]# ls /sbin/mkfs* #查看以mkfs开头的所有文件
/sbin/mkfs        /sbin/mkfs.cramfs  /sbin/mkfs.ext3  /sbin/mkfs.fat    /sbin/mkfs.msdos  /sbin/mkfs.xfs
/sbin/mkfs.btrfs  /sbin/mkfs.ext2    /sbin/mkfs.ext4  /sbin/mkfs.minix  /sbin/mkfs.vfat

mkfs -t xfs [指定されたパーティション]: 指定されたパーティションを xfs タイプとしてフォーマットします。

[root@clr ~]# mkfs -t 
btrfs   cramfs  ext2    ext3    ext4    fat     minix   msdos   vfat    xfs     

[root@clr ~]# mkfs -t xfs /dev/sdb1 #将/dev/sdb指定为xfs类型的文件系统
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242880, 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

mkfs.ext4 [指定されたパーティション]: 指定されたパーティションを ext4 タイプとしてフォーマットします。

[root@clr ~]# mkfs.
mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.minix   mkfs.vfat    
mkfs.cramfs  mkfs.ext3    mkfs.fat     mkfs.msdos   mkfs.xfs     
[root@clr ~]# mkfs.ext4 /dev/sdb5 #将/dev/sdb5指定为ext4类型的文件系统
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 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

Allocating group tables: 完成                            

mkswap コマンド

ここに画像の説明を挿入

mkswap [パーティション デバイス]: 指定されたスワップ パーティションのファイル システムをフォーマットします。

[root@clr ~]# mkswap /dev/sdc1  #为交换分区/dev/sdc1创建文件系统
正在设置交换空间版本 1,大小 = 5242876 KiB
无标签,UUID=90f22d9c-46b4-4faa-a4ae-7ee42ee0a439

free -m : システム メモリを表示します。-m ユニファイド ユニット、メモリをメガバイト単位で表示します。

[root@clr ~]# free -m #查看系统内存情况,-m统一单位,以兆为单位查看内存
              total        used        free      shared  buff/cache   available
Mem:           3931         772        2446          17         713        2921
Swap:          3968           0        3968

free -h : 人道的な方法でメモリ状況を表示します

[root@clr ~]# free -h #以人性化方式,查看内存情况
              total        used        free      shared  buff/cache   available
Mem:           3.8G        772M        2.4G         17M        713M        2.9G
Swap:          3.9G          0B        3.9G

swapon [パーティション デバイス]: 新しく追加されたスワップ パーティションを有効にします。

[root@clr ~]# swapon /dev/sdc1  #启用新增加的交换分区/dev/sdc1
[root@clr ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3931         775        2442          17         713        2917
Swap:          9088           0        9088
[root@clr ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           3.8G        775M        2.4G         17M        713M        2.8G
Swap:          8.9G          0B        8.9G

swapon -s: システム内でスワップ パーティションを提供するデバイスを確認します。

[root@clr ~]# swapon -s  #查看系统中的交换分区由哪几个设备提供
文件名				类型		大小	已用	权限
/dev/sda5                              	partition	4064252	0	-2
/dev/sdc1                              	partition	5242876	0	-3

swapoff [パーティション デバイス]: 指定されたスワップ パーティション デバイスを無効にします。

[root@clr ~]# swapoff /dev/sdc1 #停用指定的交换分区设备/dev/sdc1
[root@clr ~]# swapon -s #查看系统中的交换分区由哪几个设备提供
文件名				类型		大小	已用	权限
/dev/sda5                              	partition	4064252	0	-2

swapoff -a : システム内のすべてのスワップ パーティションを無効にします。

[root@clr ~]# swapoff -a  #停用系统中所有的交换分区
[root@clr ~]# free -h #查看系统中的交换分区由哪几个设备提供
              total        used        free      shared  buff/cache   available
Mem:           3.8G        771M        2.4G         17M        714M        2.9G
Swap:            0B          0B          0B #此时可以看到洗系统中的交换分区为0

3.2 ファイルシステムのマウントとアンマウント

mount命令

ここに画像の説明を挿入

[root@clr ~]# mkdir /data1
[root@clr ~]# ls /
admin  boot   dev  home  lib64  mnt  proc  run   srv  tmp  var
bin    data1  etc  lib   media  opt  root  sbin  sys  usr
[root@clr ~]# mount /dev/sdb1 /data1/ #将/dev/sdb1硬盘分区挂载到/data1目录下
[root@clr ~]# df #查看磁盘挂载情况
文件系统          1K-块    已用     可用 已用% 挂载点
devtmpfs        1997348       0  1997348    0% /dev
tmpfs           2013076       0  2013076    0% /dev/shm
tmpfs           2013076   12736  2000340    1% /run
tmpfs           2013076       0  2013076    0% /sys/fs/cgroup
/dev/sda1      38817264 5684776 33132488   15% /
tmpfs            402616      24   402592    1% /run/user/0
/dev/sr0        4600876 4600876        0  100% /run/media/root/CentOS 7 x86_64
/dev/sdb1      20961280   32992 20928288    1% /data1 #已成功将/dev/sdb1 挂载到/data1目录下

mount -o loop [ISO イメージ ファイル] [マウント ポイント ディレクトリ]: 指定したディレクトリにイメージ ファイルをマウントします。

[root@clr /mnt]# cd /opt #切换到/opt目录

[root@clr /opt]# mount -o loop CentOS-7-x86_64-DVD-2009-7.9.iso /mnt #将镜像文件挂载到指定目录/mnt
mount: /dev/loop0 写保护,将以只读方式挂载
[root@clr /opt]# df -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        2.0G     0  2.0G    0% /dev
tmpfs           2.0G     0  2.0G    0% /dev/shm
tmpfs           2.0G   13M  2.0G    1% /run
tmpfs           2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda1        38G  9.4G   28G   26% /
tmpfs           394M   12K  394M    1% /run/user/42
tmpfs           394M     0  394M    0% /run/user/0
/dev/sdb1        20G   33M   20G    1% /data
/dev/sdb5       9.8G   37M  9.2G    1% /data2
/dev/loop0      4.4G  4.4G     0  100% /mnt #此处查看可以看到,镜像文件已经挂载成功

[root@clr /opt]# cd /mnt #切换到挂载点所在目录
[root@clr /mnt]# ls  #查看,以下都是新挂载的ISO镜像文件
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

umount -lf [マウント ポイント ディレクトリ]: 指定したディレクトリを強制的にアンインストールすることを意味します。

[root@clr /mnt]# cd /data
[root@clr /data]# umount /data
umount: /data:目标忙。
        (有些情况下通过 lsof(8) 或 fuser(1) 可以
         找到有关使用该设备的进程的有用信息)
[root@clr /data]# umount -lf /data
[root@clr /data]# df -h
文件系统        容量  已用  可用 已用% 挂载点
devtmpfs        2.0G     0  2.0G    0% /dev
tmpfs           2.0G     0  2.0G    0% /dev/shm
tmpfs           2.0G   13M  2.0G    1% /run
tmpfs           2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda1        38G  9.4G   28G   26% /
tmpfs           394M   12K  394M    1% /run/user/42
tmpfs           394M     0  394M    0% /run/user/0
/dev/sdb5       9.8G   37M  9.2G    1% /data2
/dev/loop0      4.4G  4.4G     0  100% /mnt

ここに画像の説明を挿入

構成ファイルを使用して、永続的なマウントを実現できます。

#
# /etc/fstab
# Created by anaconda on Thu Mar 23 00:41:12 2023
#
# 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
#
UUID=bafe91da-4fb0-4d72-b66e-4f98f1645b49 /                       xfs     defaults        0 0
UUID=54c26300-4b67-4510-a83f-07da2560c5a8 swap                    swap    defaults        0 0
/dev/sdb1                                /data                    xfs     defaults        0 0
UUID=b53750a3-dacd-490e-8efd-d57c7f079ab9 /data2                  ext4     defaults        0 0
/dev/sr0                                  /mnt                    iso9660  defaults       0  0

起動時に自動的に実行されるコマンドを格納するために使用されるファイル。

[root@clr /]# vim /etc/fstab   #将需要开机自启动的参数放置在/etc/fstab文件中
[root@clr /]# vim /etc/profile
[root@clr /]# vim ~/.bash_profile
[root@clr /]# ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 45 17:34 /etc/rc.local -> rc.d/rc.local
[root@clr /]# vim /etc/rc.local
[root@clr /]# chmod +x /etc/rc.d/rc.local
[root@clr /]# ll !$  #能够自动识别上条命令中的最后一个字段/一列内容

ここに画像の説明を挿入

ここに画像の説明を挿入

3.3 ディスク使用量の表示

df命令

df [オプション] [ファイル]

示例

ここに画像の説明を挿入

lsblk: 現在のすべてのパーティション デバイスのマウント ステータスを表示します。

[root@clr /data]# lsblk  #lsblk:查看当前所有分区设备的挂载情况;
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   60G  0 disk 
├─sda1   8:1    0   37G  0 part /
├─sda2   8:2    0    1K  0 part 
└─sda5   8:5    0  3.9G  0 part [SWAP]  #交换分区
sdb      8:16   0   40G  0 disk 
├─sdb1   8:17   0   20G  0 part /data #sdb1挂载到/data目录下
├─sdb2   8:18   0    1K  0 part 
└─sdb5   8:21   0   10G  0 part /data2  #sdb5挂载到/data2目录下
sdc      8:32   0   20G  0 disk 
└─sdc1   8:33   0    5G  0 part [SWAP]
sr0     11:0    1  4.4G  0 rom  
loop0    7:0    0  4.4G  0 loop /mnt  #镜像文件挂载到/mnt目录下

おすすめ

転載: blog.csdn.net/cailirong123/article/details/129937210