磁盘管理

简介:

  数据的存储总是需要一个载体,这个载体就是我们通常说的硬盘,硬盘它的构造就是一个不停在转的磁块,一个不停转的磁块是怎么存储数据的,为什么这个磁块需要不停的转动,并且我们日常购买磁盘,都希望磁盘的转速越快越好,这一切都取决于磁盘的存储数据的原理。目前市面上稍微高端一点的电脑全部都使用SSD,这种新磁盘为什么拥有那么好的性能。

一 磁盘

  磁盘存储数据是把一个可以存储磁属性的东西赋予正负属性,多个正负组合在一起代表一个数据。工业中把磁盘分成如下图的样子

wKioL1g89ZfRL_-yAASHSiuAQig488.png-wh_50

  上图就是工业上划分磁盘的标准,首先把磁盘划分为一圈圈的磁道,然后把磁道分为一个个扇区,每个扇区存储512B数据。当今的磁盘一般不是一个盘片的硬盘,一般都是多个盘片,并且正反盘面都存储数据。

wKioL1g89b_irUR3AAVNWL27Blw844.png

  上图就是一个三盘片的磁盘,并且有六个磁头,磁头统一固定在一个可以转动的磁臂上。前面我们把磁盘分为一个个磁道,就是通过磁臂转动选择磁道。当读数据的时候,磁臂转到对应的磁道,然后确定在哪个磁头上的哪个扇区,这时就需要看磁盘的转速了,磁盘的转动速度越快,寻找扇区的速度越快。一个磁盘可以存储数据的大小=磁头数*磁道数*扇区数*512B

二 磁盘使用

  磁盘使用分为两个部分,一是磁盘管理,分区类型有mbrgpt;二是文件系统管理,主要是在磁盘原本的存储结构上进一步划分,使得操作系统可以高效的利用磁盘。

磁盘分区类型

磁盘使用的时候总是需要了解磁盘信息,有时还需要把磁盘分为多个块使用,分块很有必要性,分块使用磁盘可以把不同的数据分开存放,这个分开存放比在同一个分区下把文件放在不同的目录要安全很多,比如数据文件比操作系统文件重要很多,分区后即使操作系统崩溃也不会导致数据的丢失。因为以上等等需求,使用磁盘前先规划记录磁盘信息变得尤其重要。

Mbr分区类型使用硬盘的0磁道的0扇区记录整个磁盘的信息。前644个字节存放磁盘的引导信息;然后64个字节存放分区信息,磁盘最多可以分4个主分区,也可以把最后一个分区更改为扩展分区,在扩展分区内继续分区。

gpt分区类型使用0磁道的前34个扇区存放信息,最多可以分128个分区,并且每个分区情况都会有一个备份。

  • 分区查看

1
2
3
df                   显示当前系统已经挂载各磁盘分区的大小和使用率,-h以易读的格式显示分区的大小。
lsblk                显示分区的大小
fdisk  –l  /device           显示某个硬盘的信息


  • 磁盘分区

mbr分区命令

1
2
3
4
5
6
7
fdisk  /device            这是交互式的命令,也可以通过接受<<eof获取参数
        m           获取帮助
        p           打印分区情况
        n           创建分区
        t           修改分区类型
gpt分区命令
gdisk  /device            fdisk 的使用方式差不多


文件系统管理

  仅对磁盘进行分区是完全不能满足我们的需求,操作系统管理文件需要更加具有规范的格式,这样才可以高效调用文件查询文件。

  下图就是一个完整的从磁盘到操作系统管理数据的格式。

wKioL1g89fTQsZOEAAGil76l3tg350.png

  • 文件系统类型

Windows的文件系统的类型:ntfsvfat

Linuxext#xfsbrtfs

ext3开始之后文件系统具有日志功能

Unix:。。。

网络文件系统:nfsb2fs

分布式文件系统:chp。。。

  文件系统创建

 

1
2
3
4
5
6
7
8
9
10
11
12
13
  mkfs.{ext #|xfs|brtfs}[option]
       -b   {1024|2048|4096}       指定block的大小
       -L   label                指定lable
       -U  uuid                  指定uuid
       -m   #               指定预留空间百分比
       -i                       指定inode比例,每多少空间创造一个inode
       -I                 指定inode的大小
       -N                 指定inode的熟练
        -O  [^|]
          acl              文件系统默认挂载后是否有acl权限
          sync              实时同步,系统性能会变得特别差
              async
              exec               目录下的文件不许执行


  • 查看和修改

1
2
3
4
5
6
7
blkid      device          显示分区的uuid和lable信息
        tune2fs [option]  /device/part
               -l           列出分区的超级块信息
               -L          指定lable信息
               -U         指定uuid
               -o          指定挂载选项
               -m         指定预留空间大小


3 Swap分区

   swap分区类似windows里的虚拟内存,作用就是虚拟内存使用硬盘模拟内存,内存不够的时候把数据暂存入此处。

1
2
3
    mkswap   /device/part              把格式化为swap分区
    swapon [-p]  /device/part        激活分区,-p指定使用的优先级
    swapoff

三 文件系统的使用

挂载和卸载分区

1
2
3
4
5
6
7
8
9
10
11
mount  [option] /device/part
    -o          指定挂载选项
      acl
      sync
      exec
      remount
    -a          重读 /etc/fstab 文件
umount [ /device/part | /dir ]           卸载目录
Fuser     
     - v  [ /device/part  | /dir ]       查看某目录或文件正在使用的人
   -km[ /device/part | /dir ]        踢出人


2 fstab

  /etc/fstab这里主要是定义操作系统开机时挂载设备的选项

/etc/fstab的格式

/device/part        /dir        filetyp          option          0     0

       第一个字段是设备的路径或者uuid或者lable

       第二个字段是挂载的命录

       第三个字段是文件系统类型

       第四个字段是挂载选项

       第五个字段是转储频率

       第六个字段是自检顺序

四 外围设备

       添加设备文件

       mknod[选项]... 名称 类型 [主设备号 次设备号]

       光驱

       eject

五 直接操作磁盘数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
dd  if = source  of=direct   bs=block skip= seek= conv=conversion
     of= file  写到所命名的文件而不是到标准输出
     if = file  从所命名文件读取而不是从标准输入
     bs=size 指定块大小(既是是ibs也是obs)
     ibs=size 一次读size个byte
     obs=size 一次写size个byte
     cbs=size 一次转化size个byte
     skip=blocks 从开头忽略blocks个ibs大小的块
     seek=blocks 从开头忽略blocks个obs大小的块
     count=n 只拷贝n个记录
     conv=conversion[,conversion...] 用指定的参数转换文件
     转换参数:
     ascii 转换 EBCDIC 为 ASCII
     ebcdic 转换 ASCII 为 EBCDIC
     block 转换一行数据为长度为 cbs 的记录,不足部分用空格填充。
     unblock 替代cbs长度的每一行尾的空格为新行
     lcase 把大写字符转换为小写字符
     ucase 把小写字符转换为大写字符
     nocreat 不创建输出文件
     noerror 出错时不停止
     notrunc 不截短输出文件
     sync  把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐


六 总结

  这一章主要学习了磁盘的原理,磁盘的管理,文件系统的管理,各种设备的挂载和使用,和直接操作数据的命令dd

 

 

遗漏

du –sh

       free





      本文转自Ailu0li 51CTO博客,原文链接:http://blog.51cto.com/oldking/1877642,如需转载请自行联系原作者






相关文章
|
5月前
|
Linux 开发工具
Linux操作系统6:文件系统及磁盘管理
Linux操作系统6:文件系统及磁盘管理
86 0
|
3月前
磁盘管理
磁盘管理 查看挂载情况 lsblk -f 挂载步骤 1.虚拟机增加硬盘 2.分区命令 fdisk /dev(设备文件)/sdb m 显示命令列表 p 显示磁盘分区 n 新增分区 d 删除分区 w 写入并退出 3.格式化磁盘,并挂载 mkfs -t ext4 /dev/sdb1 mount /dev/sdb1 文件路径
22 0
|
3月前
磁盘管理
磁盘管理 查看挂载情况 lsblk -f 挂载步骤 1.虚拟机增加硬盘 2.分区命令 fdisk /dev(设备文件)/sdb m 显示命令列表 p 显示磁盘分区 n 新增分区 d 删除分区 w 写入并退出 3.格式化磁盘,并挂载 mkfs -t ext4 /dev/sdb1 mount /dev/sdb1 文件路径
15 0
|
3月前
|
Linux
磁盘管理工具 - cfdisk
【1月更文挑战第9天】
39 0
|
4月前
|
存储 IDE Linux
回顾一下磁盘管理
回顾一下磁盘管理
102 0
|
5月前
|
Ubuntu Linux 开发工具
Linux操作系统7:文件系统及磁盘管理(二)
Linux操作系统7:文件系统及磁盘管理(二)
48 0
|
8月前
|
存储 算法 Linux
系统磁盘管理
文件系统 创建物理卷选项(PV) 创建卷组选项 (VG) 创建逻辑卷选项 (LV) 磁盘扩展 vg内存不足时扩展 LVM案例: 磁盘配额
|
8月前
|
Unix Linux
|
9月前
|
Linux 测试技术 CDN
Linux系统-【磁盘管理】lsblk命令 – 查看系统的磁盘使用情况
lsblk命令来自于英文词组”list block“的缩写,其功能是用于查看系统的磁盘使用情况。
158 0
|
10月前
|
Linux
【磁盘管理】fdisk命令 – 管理磁盘分区
fdisk命令来自于英文词组“Partition table manipulator for Linux”的缩写,其功能是用于管理磁盘的分区信息。如果一套几百平米的房子内部没有墙壁,虽然看起来会很敞亮,但是各种声音、气味、物品会随意充斥在整个房子内,让人极不舒适,因此需要用墙壁按照功能进行划分,例如卧室、厕所、厨房、阳台等等。
170 0

相关实验场景

更多