Linux 磁盘设备文件管理

news/2024/7/5 18:53:29

Linux 磁盘设备文件管理

  • 一. 磁盘结构
    • 1. 磁盘物理结构
    • 2. 磁盘数据结构
    • 3. 硬盘的存储容量
    • 4. 磁盘接口类型
    • 5. MBR与磁盘分区表示
    • 6. 磁盘分区结构
  • 二. 文件系统类型
    • 1. XFS文件系统
    • 2. SWAP交换文件系统
    • 3. Linux支持的其他文件系统类型
  • 三、创建新的磁盘
    • 1. 查看或管理磁盘分区:fdisk
    • 2. 交互模式中的常用指令
    • 3. 创建分区步骤
    • 4. 创建文件系统(格式化):mkfs
    • 5. 刷新,挂载
    • 6. 创建交换文件系统:mkswap
    • 7. 取消挂载
    • 8. 设置自动挂载文件

一. 磁盘结构

在这里插入图片描述

1. 磁盘物理结构

盘片 :硬盘有多个盘片,每盘片2面

磁头 :每面一个磁头

2. 磁盘数据结构

扇区: 盘片被分为多个扇形区域,每个扇区存放512字节的数据,硬盘的最小存储单位

磁道 :同一盘片不同半径的同心圆,是由磁头在盘片表面划出的圆形轨迹

柱面 :不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成

3. 硬盘的存储容量

硬盘存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数 (512字节)

4. 磁盘接口类型

类型说明
IDE并口数据线连接主板与硬盘,抗干扰性太差,且排线占用空间较大,不利电脑内部散热,已逐渐被SATA所取代
SATA抗干扰性强,支持热插拔等功能,速度快,纠错能力强
SCSI小型机系统接口,SCSI硬盘广为工作站级个人电脑以及服务器所使用,资料传输时CPU占用率较低,转速快,支持热插拔等
SAS是新一代的SCSI技术,和SATA硬盘相同,都是采取序列式技术以获得更高的传输速度,可达到6Gb/s
光纤通道为提高多硬盘存储系统的速度和灵活性才开发的,它的出现大大提高了多硬盘系统的通信速度。特性:热插拔性、高速带宽、远程连接、连接设备数量大

5. MBR与磁盘分区表示

主引导记录MBR:Master Boot Record

  • MBR位于硬盘的第一个物理扇区处
  • MBR中包含硬盘的主引导程序和硬盘分区表
  • MBR共512字节,前446字节是主引导记录,分区表保存在MBR扇形区中的第447-510字节中
  • 分区表中有4个分区记录区,每个分区记录区占16个字节
    最大支持2.2TB的卷 ,超过2.2T就用GPT ,支持18EB

fdisk /dev/sdb 进入硬盘分区

sd 表示SCSI设备

hd 表示IDE设备

硬盘的顺序号 以字母a、b、c…表示

分区的顺序号 以数字1、2、3…表示。主分区1-4,逻辑分区从5开始

6. 磁盘分区结构

  • 硬盘中的主分区数目只有4个
  • 主分区和扩展分区的序号限制在1~4
  • 扩展分区再分为逻辑分区
  • 逻辑分区的序号将始终从5开始

二. 文件系统类型

1. XFS文件系统

  • 存放文件和目录数据的分区
  • 高性能的日志型文件系统,特别擅长于处理大文件,可支持上百万TB的存储空间
  • CentOS 7系统中默认使用的文件系统

2. SWAP交换文件系统

  • 为Linux系统建立交换分区
  • 一般设置为物理内存的1.5~2倍

3. Linux支持的其他文件系统类型

EXT4 FAT32 NTFS LVM

三、创建新的磁盘

1. 查看或管理磁盘分区:fdisk

  • fdisk -l 查看磁盘设备
 设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048   125829119    62401536   8e  Linux LVM

|

字段说明
Device(设备)分区的设备文件名称
Boot是否是引导分区,若是,则有 “*” 标识
Start该分区在硬盘中的起始位置(柱面数)
End该分区在硬盘中的结束位置(柱面数)
Blocks分区的大小,以Block(块)为单位,默认的块大小为1024字节
ID分区对应的系统ID号
system分区类型

2. 交互模式中的常用指令

管理磁盘分区

fdisk /dev/sdb

指令说明
m获取帮助菜单
n新建分区
p查看分区情况
d删除分区
t变更分区的类型
w保存分区操作并退出
q不保存分区操作并退出

3. 创建分区步骤

创建分区步骤
n
–> p 主分区、e扩展分区、l逻辑分区
–>设置分区:1(范围1-4,如按 Enter键接受默认值)
–>设置柱面序列:直接按 Enter键接受默认值
–>设置分区大小:+20G(指定大小为20GB,如按Enter键接受默认值表示所有空间)
w

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2)2
起始 扇区 (20973568-83886079,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-83886079,默认为 83886079)+5g
不支持的后缀:“g”。
支持:10^N: KB (千字节), MB (兆字节), GB (吉字节)
            2^N: K  (约千字节), M  (约兆字节), G  (约吉字节)
Last 扇区, +扇区 or +size{K,M,G} (20973568-83886079,默认为 83886079)+5G 
分区 2 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x51b5e233

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux
/dev/sdb2        20973568    31459327     5242880   83  Linux

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
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)
正在同步磁盘。
[root@localhost ~]# 

4. 创建文件系统(格式化):mkfs

mkfs + -t + 文件类型 + 分区设备 比如 :mkfs -t xfs /dev/sdb1
或者
mkfs .文件类型 + 分区设备 比如 :mkfs.xfs /dev/sdb1

[root@localhost ~]# mkfs -t xfs /dev/sdb2
mkfs.xfs: /dev/sdb2 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.
[root@localhost ~]# mkfs.xfs -f /dev/sdb2   之前安装过分区,删除,重新安装后 需要-f 强制覆盖格式化

5. 刷新,挂载

partprobe /dev/sdb 刷新
mount /dev/sdb1 /data 挂载

[root@localhost ~]# mount /dev/sdb2 /data2
[root@localhost ~]# df -h

6. 创建交换文件系统:mkswap

进入fdisk /dev/sdb5 先创建分区 n e +5G w 完了后 再次进入fdisk /dev/sdb5 n l 回车 w ,完了之后再进入fdisk /dev/sdb5 t 5 82 。mkswap /dev/sdb5 swapon -s 查看 ,如果没有sdb5 可以刷新 partprobe /dev/sdb

[root@localhost ~]# mkswap /dev/sdb5
/dev/sdb5: 没有那个文件或目录
[root@localhost ~]# partprobe /dev/sdb
[root@localhost ~]# vi /dev/sdb
sdb   sdb1  sdb2  sdb3  sdb5  
[root@localhost ~]# mkswap /dev/sdb5
mkswap: /dev/sdb5: warning: wiping old swap signature.
正在设置交换空间版本 1,大小 = 5241852 KiB
无标签,UUID=1a9656aa-e8cf-4044-bfb2-d380e7e276e5
[root@localhost ~]# swapon /dev/sdb5
[root@localhost ~]# swapon -s
文件名				类型		大小	已用	权限
/dev/dm-1                              	partition	4194300	0	-1
/dev/sdb5                              	partition	5241852	0	

7. 取消挂载

umount /data (退出挂载点所在目录操作)

8. 设置自动挂载文件

vi /etc/fstab 进入/etc/fstab配置文件
/dev/sdb1 /data xfs defaults 0 0
/dev/sro /mnt iso9660 defaults 0 0
设置完后需要重启 reboot 或者mount -a ,不需要重启,自动挂载,自动读取/etc/fstab

在这里插入图片描述


http://www.niftyadmin.cn/n/3652868.html

相关文章

socket异步处理问题

由于一个项目要和第三方软件做接口,第三方软件是Unix的操作系统,所以用了Socket来传输数据。具体结构是这样的:本项目作为服务器端,第三方软件是客户端,并且有多个客户端。通常情况下,要开多个线程来处理多…

Linux挂载windows 共享文件

Linux挂载windows 共享文件学习目标操作步骤学习目标 Linux挂载window 共享文件 操作步骤 windows端共享权限设定: 1.解禁Guest 右击我的电脑选择管理–>本地用户和组–>在用户项中双击Guest用户–>取消账号已禁用选项 2.设置共享目录权限 右击共享目录点属性–…

.Net Remoting中Remote Server的Port占用/释放问题

这一问题一般出现在Console application/Windows Service承载Remote Objects时,要求Remote Server指定特定port。IIS在承载Remote Objects并不需要指定特定port,因此一般不会出现SocketException异常信息。1. 启动承载Remote Objects的Console applicati…

LVM逻辑卷管理和磁盘配额

LVM逻辑卷管理和磁盘配额一. LVM逻辑卷管理1. 逻辑卷管理2. LVM机制的基本概念2.1 LVM主要命令2.2 LVM应用实例2.3 扩容二. 磁盘配额1. 磁盘配额基本2. 命令3. 查看磁盘容量和文件数的报告4. 磁盘配额步骤及验证一. LVM逻辑卷管理 1. 逻辑卷管理 ●能够在保持现有数据不变的情…

信道、接收器、接收链和信道接受提供程序

Channel, Sink, Sink Chain and Channel Sink Provider为了扩展.Net Remoting,定制接收器(Sink)和信道接受提供程序(Channel Sink Provider),改变.Net Remoting的缺省行为,需要先了解.Net Remot…

Linux操作系统引导过程及启动类故障,服务控制,运行级别和优化启动过程

Linux操作系统引导过程及启动类故障,服务控制,运行级别和优化启动过程一. Linux操作系统引导过程1.开机自检2.MBR引导3. GRUB菜单4. 加载Linux 内核5. init 进程初始化5.1 系统初始化进程5.2 Systemd 单元类型5.3 运行级别所对应的Systemd目标二. 排除启…

用AS3调用摄像头(附源代码下载)

用as3调用摄像头,代码如下:package { import flash.display.Sprite; import flash.text.*; import flash.media.Camera; import flash.events.StatusEvent; import flash.events.ActivityEvent; import flash.media.Video; public class CameraEx extend…