Linux云计算-06_Linux磁盘管理

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

怎样将cdlinux写入u盘启动盘

本章将介绍硬盘的简介、硬盘数据存储方式、在企业生产服务器中添加硬盘的方法、对硬盘进行分区、初始化和挂载等操作。

1. 计算机硬盘简介

硬盘是计算机主要的存储媒介之一,由一个或多个铝制或玻璃制的碟片组成。碟片外覆盖有铁磁性材料。硬盘内部由磁道、柱面、扇区、磁头等部件组成。

在Linux系统中,硬件设备的相关配置文件存放在/dev目录下。常见的硬盘命名包括/dev/hda/dev/sda/dev/sdb/dev/sdc/dev/vda等。不同的硬盘接口在系统中的设备名称也不相同。例如,IDE硬盘接口在Linux中的设备名为/dev/hda,而SAS、SCSI、SATA硬盘接口在Linux中的设备名为sda,高效云盘硬盘接口会被识别为/dev/vda等。

文件存储在硬盘上,硬盘的最小存储单位称为扇区(Sector),每个扇区存储512字节的数据。为了提高读取效率,操作系统会一次性连续读取多个扇区,这样的一组扇区被称为块(Block)。在Linux中,块的大小通常设置为4KB,即连续的8个扇区组成一个块。

可以通过以下方法查看Linux分区的块大小:

[root@superman-vm01 ~]# stat /boot | grep "Inode"   
Device: 801h/2049d      Inode: 64          Links: 5
[root@superman-vm01 ~]# 

例如,如果创建一个大小为10字节的普通文件,默认的块大小为4KB。如果有1万个小文件,每个块只能存放一个文件。如果文件的大小超过了块的大小,将会占用更多的块,反之,如果文件的大小小于块的大小,仍然会占用一个块,导致剩余的空间被浪费掉。

2. 硬盘块和Inode详解

通常情况下,操作系统对文件数据的存放包括两个部分:文件内容和权限、属性等信息。操作系统使用文件系统将文件的实际内容存储到块中,而将权限和属性等信息存放到Inode中。

在硬盘分区中,还有一个超级区块(SuperBlock),它记录了整个文件系统的整体信息,包括Inode和块的总量、使用大小、剩余大小等信息。每个Inode和块都有一个编号,方便Linux系统快速定位和查找文件。

因为每个Inode和块都有编号,而每个文件都会占用一个Inode,Inode中记录了文件数据所放置的块号码。如果能够找到文件的Inode,就可以找到该文件所放置数据的块号码,从而读取文件的内容。

在操作系统进行格式化分区时,会自动将硬盘分成两个区域:一个是数据块区,用于存放文件数据;另一个是Inode Table区,用于存放包含Inode的元信息。

每个Inode节点的大小可以在格式化时指定,默认为128字节或256字节。例如,/boot分区的Inode默认为128字节,其他分区默认为256字节。可以通过以下方法查看Linux系统的Inode大小:

怎样将cdlinux写入u盘启动盘

3. 硬链接介绍

通常情况下,文件名和Inode编号是一一对应的关系,每个Inode编号对应一个文件名。但在UNIX/Linux系统中,多个文件名也可以指向同一个Inode编号。这意味着可以使用不同的文件名访问相同的内容,对文件内容进行修改会影响到所有文件名,但删除一个文件名不会影响另一个文件名的访问。这种情况被称为硬链接(hard link)。

创建硬链接的命令为:ln superman1.txt superman2.txt,其中superman1.txt为源文件,superman2.txt为目标文件。上述命令中,源文件和目标文件的Inode编号相同,都指向同一个Inode。Inode信息中有一项叫做”链接数”,记录指向该Inode的文件名总数,创建硬链接后,链接数会增加1。

删除一个superman2.txt文件会使superman1.txt的Inode节点中的”链接数”减1。如果该Inode的链接数减到0,表明没有文件名指向这个Inode,系统会回收该Inode编号及其对应的块区域。

需要注意的是,硬链接不能跨分区链接,只能对文件生效,不能对目录进行硬链接。硬链接的源文件和目标文件共用一个Inode编号,从某种意义上来说,节省了Inode空间。无论是单独删除源文件还是删除目标文件,文件内容始终存在。同时,链接后的文件不会占用额外的空间。

4. 软链接介绍

除了硬链接,还有一种链接方式是软链接(symbolic link)。文件superman1.txt和文件superman2.txt的Inode编号虽然不同,但是文件superman2.txt的内容是文件superman1.txt的路径。当读取文件superman2.txt时,系统会自动将访问者导向文件superman1.txt

无论打开哪个文件,最终读取的都是文件superman1.txt。这时,文件superman2.txt就称为文件superman1.txt的软链接或符号链接。

文件superman2.txt依赖于文件superman1.txt而存在。如果删除了文件superman1.txt,打开文件superman2.txt就会报错:”No such file or directory”。软链接与硬链接最大的不同是,文件superman2.txt指向文件superman1.txt的文件名,而不是文件superman1.txt的Inode编号。因此,文件superman1.txt的Inode链接数不会发生变化。

需要注意的是,软链接可以跨分区链接,支持对目录和文件进行链接。软链接的源文件和目标文件的Inode编号不相同,从某种意义上来说,会消耗Inode空间。无论是删除源文件还是重启系统,软链接仍然存在,但是文件内容会丢失。一旦新建同名的源文件,软链接文件将恢复正常。

5. Linux下磁盘实战操作命令

在企业真实场景中,由于硬盘经常进行大量的读写操作,常常会出现坏盘需要更换,或者由于磁盘空间不足需要添加新硬盘的情况。添加新硬盘后,需要进行格式化和分区才能被Linux系统使用。

以下是添加新硬盘的操作流程:

5.1 fdisk分区命令参数

常用的参数包括mnpedw

怎样将cdlinux写入u盘启动盘

5.2 检测识别的硬盘设备

新添加的硬盘被识别为/dev/sdb,如果有多块硬盘,会依次识别为/dev/sdc/dev/sdd等设备名称。

fdisk -l

5.3 创建磁盘分区

基于新硬盘/dev/sdb设备,创建磁盘分区/dev/sdb1

fdisk /dev/sdb

5.4 创建/dev/sdb1分区方法

使用fdisk /dev/sdb命令,然后按下np1EnterEnterEnterw键,最后执行fdisk -l|head -10命令。

怎样将cdlinux写入u盘启动盘

(a) 使用fdisk /dev/sdb创建/dev/sdb1分区
(b) 使用fdisk -l查看/dev/sdb1分区

5.5 格式化分区

使用mkfs.xfs /dev/sdb1命令格式化磁盘分区。

# 创建/data/数据目录
mkdir /data
# 挂载/dev/sdb1分区至/data/目录
mount /dev/sdb1 /data
# 查看磁盘分区详情
df -h
# 开机自动挂载(永久挂载)
echo "/dev/sdb1        /data                       xfs     defaults        0 0" >>/etc/fstab

5.6 挂载分区

/dev/sdb1分区挂载到/data/目录,并将其添加到/etc/fstab文件中,以实现开机自动挂载。

6. 基于GPT格式磁盘分区

MBR分区标准决定了MBR只支持2TB以下的硬盘。为了支持大于2TB的硬盘空间,需要使用GPT格式进行分区。创建大于2TB的分区需要使用parted工具。

在企业真实环境中,通常一台服务器有多块硬盘,整个硬盘容量可能达到10T。需要基于GPT格式对10T硬盘进行分区,操作步骤如下:

6.1 检测识别的硬盘设备

使用fdisk -l命令检测识别的硬盘设备。

6.2 设置分区类型为GPT格式

6.2.1 非交互方式

执行命令parted -s /dev/sdb mklabel gptparted /dev/sdb mkpart primary 0 100%

怎样将cdlinux写入u盘启动盘

6.2.2 交互方式

使用parted命令行进行分区。

6.3 格式化磁盘

基于mkfs.xfs /dev/sdb命令格式化磁盘。

6.4 挂载分区

创建挂载目录并挂载。

7. Mount命令工具

Mount命令工具主要用于将设备或分区挂载到Linux系统目录下。在Linux系统中,分区是基于mount机制将/dev/sda分区挂载到系统目录,以实现文件的存储。

7.1 Mount命令参数详解

以下是Mount命令常用参数的详细解释:

怎样将cdlinux写入u盘启动盘

7.2 企业常用Mount案例

以下是Mount命令的常见用法:

7.2.1 挂载/dev/sdb1分区到/data/目录

mount /dev/sdb1 /data

7.2.2 挂载CD-ROM光盘到/mnt目录

mount /dev/cdrom /mnt

7.2.3 挂载/dev/sdb1移动硬盘到/data目录

mount -t ntfs-3g /dev/sdb1 /data

注意:如果提示未知的文件系统类型”ntfs”,请执行yum install -y ntfs-3g命令安装ntfs-3g软件包。

7.2.4 重新以读写模式挂载/系统

mount -o remount,rw /

7.2.5 将CentOS-7-x86_64-DVD-1810.iso镜像文件挂载到/mnt目录

mount -t iso9660 -o loop CentOS-7-x86_64-DVD-1810.iso /mnt

7.2.6 将U盘/dev/sdd1挂载到/mnt/目录

mount -t vfat /dev/sdb1 /mnt

7.2.7 将远程192.168.1.182:/data目录挂载到本地/data目录

mount -t nfs 192.168.1.182:/data/ /data

以上是Linux下磁盘实战操作的命令和案例。

赞(0)