磁盘管理

计算机硬盘

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


    image.png
image.png
  • Linux系统中硬件设备相关配置文件存放在/dev下,常见硬盘命名为/dev/hda、/dev/sda、/dev/sdb、/dev/sdc、/dev/vda.不同硬盘接口,在系统中识别的设备名称不一样
  • IDE硬盘接口在Linux中设备名为/dev/hda,SAS、SCSI、SATA硬盘接口在Liunx设备名为sda,高效云盘硬盘接口会识别为/dev/vda等
  • 硬盘的最小存储单位叫作sector(扇区),每个sector存储512字节,操作系统在读取硬盘的时候,不会逐个sector地去读取,这样效率非常低,为了提升效率,操作系统会一次性连续读取多个sector,即一次性读取多个sector称为block(块)
  • 由多个sector组成的block是文件存取的最小单位.block的大小常见的有1KB、2KB、4KB,在Linux中常设置为4KB,即连续8个sector组成一个block
  • /boot分区的block一般为1KB,而/data分区或者/分区的block为4KB
# 查看block和inode大小
[root@ali ~]# dumpe2fs /dev/vda1|grep "Block size"
dumpe2fs 1.42.9 (28-Dec-2013)
Block size:               4096
[root@ali ~]# tune2fs -l /dev/vda1|grep "Block size"
Block size:               4096
[root@ali ~]# tune2fs -l /dev/vda1|grep "Inode size"
Inode size:           256
[root@lianxi ~]# stat /boot/|grep "IO Block"
Size: 4096      Blocks: 8          IO Block: 4096   directory
  • 创建一个普通10B大小的文件,系统默认设置block为4KB,如果有一万个小文件,由于每个block只能存放一个文件,如果文件的大小比block大,会申请更多的block.相反如果文件的大小比默认block小,仍会占用一个block,这样剩余的空间会被浪费掉

硬盘block及inode

  • 操作系统对于文件数据的存放包括两个部分:一是文件内容;二是权限及文件属性.操作系统文件存放是基于文件系统,文件系统会将文件的实际内容存储到block中,而将权限与属性等信息存放至inode中
  • 在硬盘分区中,还有一个超级区块(superblock),superblock会记录整个文件系统的整体信息,包括inode、block的总量、使用大小、剩余大小等信息.每个inode与block都有编号对应,方便Linux系统快速定位查找文件
    • superblock:记录文件系统的整体信息,包括inode与block的总量、使用大小、剩余大小以及文件系统的格式与相关信息
    • block:存储文件的内容,如果文件超过默认block大小,会自动占用多个block
    • inode:记录文件的属性、权限,同时会记录该文件的数据所在的block编号
  • 每个inode与block都有编号,而每个文件都会占用一个inode,inode内则有文件数据放置的block号码.如果能够找到文件的inode,就可以找到该文件所放置数据的block号码,从而读取该文件内容
  • 操作系统进行格式化分区时,操作系统自动将硬盘分成两个区域.一个是数据区,用于存放文件数据,另一个是inode table区,用于存放inode包含的元信息
  • inode默认为128KB或256KB,/boot分区inode默认为128KB,其他分区默认为256KB
# 查看Linux系统inode方法
dumpe2fs /dev/vda1|grep "Inode size"
tune2fs -l /dev/vda1|grep "Inode size"
stat /boot/|grep "Inode"
#格式化磁盘时,可以指定inode个block的大小;-b指定默认block,-I指定默认inode值
mkfs.ext4 -b 4096 -I 256 /dev/sdb

硬链接

  • 一般情况下,文件名和inode编号是一一对应的关系,每个inode号码对应一个文件名,但UNIX/Linux系统多个文件名也可以指向同一个inode号码.这意味着可以用不同的文件名访问通用的内容,对文件内容进行修改,会影响到所有文件名.但删除一个文件名,不影响另一个文件名的访问.这种情况称为硬链接(hard link)
# 创建硬链接
ln test1.txt test2.txt
# test1.txt为源文件 test2.txt为目标文件
[root@lianxi tmp]# ll -i
total 0
67193826 -rw-r--r--. 1 root root 0 May 23  2020 music.txt.bak
68075908 -rw-r--r--. 2 root root 0 Feb  8 16:17 test1.txt
68075908 -rw-r--r--. 2 root root 0 Feb  8 16:17 test2.txt
  • 实用技巧:硬链接不能跨分区链接,硬链接只能对文件生效,对目录无效,也即是目录不能创建硬链接.硬链接源文件与目标文件公用一个inode值,从某种意义上来说,节省inode空间.不管是单独删除源文件还是删除目标文件,文件内容始终存在.链接后的文件不占用系统多余的空间

软链接

  • 文件1和文件3的inode虽然不同,但是文件3的内容是文件1的路径.读取文件3时,系统会自动将访问者导向文件1.
  • 无论打开哪一个文件,最终读取的文件都是文件1.这时,文件3就称为文件1的软链接(soft link)或者符号链接(symbolic link)
[root@lianxi tmp]# ln -s test1.txt test3.txt
[root@lianxi tmp]# ll -i
total 0
67193826 -rw-r--r--. 1 root root 0 May 23  2020 music.txt.bak
68075908 -rw-r--r--. 2 root root 0 Feb  8 16:17 test1.txt
68075908 -rw-r--r--. 2 root root 0 Feb  8 16:17 test2.txt
67193825 lrwxrwxrwx. 1 root root 9 Feb  8 16:25 test3.txt -> test1.txt
  • 实用技巧:软链接可以跨分区链接,软链接支持目录同时也支持文件的链接.软链接文件与目标文件inode不同,从某种意义上说,会消耗更多的inode空间.不管是删除源文件还是重启系统,该软链接还存在,但是文件内容会丢失,一旦新建源同名文件,软链接文件恢复正常

Linux下磁盘实战操作

  • 由于磁盘空间不足,需添加新硬盘,新添加的硬盘需要经过格式化、分区才能被Linux系统所使用.操作流程如下:

    • 1.检测Linux系统识别的硬盘设备,新添加硬盘会被识别为/dev/sdb,如果有多块硬盘会被识别为/dev/sdc、/dev/sdd等设备名称
image.png
  • 2.基于新硬盘/dev/sdb设备,创建磁盘分区/dev/sdb1
image.png
  • 3.fdisk分区命令参数如下,常见参数包括m、n、p、d、w
    • b:编辑bsd disklabel(磁盘标签)
    • c:切换dos兼容性标志
    • d:删除一个分区
    • g:创建一个新的空GPT分区表
    • G:创建一个IRIX(SGI)分区表
    • l:列出已知的分区类型
    • m:打印帮助菜单
    • n:添加一个新分区
    • o:创建一个新的空DOS分区表
    • p:打印分区表信息
    • q:退出不保存
    • s:创建一个新的空sun磁盘标签
    • t:更改分区的系统ID
    • u:更改显示/输入单元
    • v:验证分区表
    • w:将分区表写入磁盘并退出
    • x:额外功能
  • 4.创建/dev/sdb1分区方法,执行fdisk /dev/sdb,然后按屏幕提示一次输入n、p、1,按Enter键,再输入+10G,按Enter键,输入w,最后执行fdisk -l查找磁盘信息
image.png
image.png
  • 5.mkfs.ext4 /dev/sdb1 格式化磁盘分区
image.png
  • 6./dev/sdb1 分区格式化,使用mount命令挂载到/data目录,命令详解为
    • mkdir -p /data:创建/data数据目录
    • mount /dev/sdb1 /data:挂载/dev/sdb1分区至/data目录
    • df -h:查看磁盘分区详情
    • echo "mount /dev/sdb1 /data" >> /etc/rc.local:将挂载分区命令加入/etc/rc.local开机启动
image.png
  • 7.自动挂载分区除了可以加到/etc/rc.local开机启动之外,还可以加到/etc/fstab文件中
image.png
mount -o rw,remount /
# 表示重新挂载/系统,检测/etc/fstab是否有误

基于GPT格式磁盘分区

  • MBR分区标准决定了MBR只支持在2TB以下的硬盘分区,为了能支持使用大于2TB硬盘空间,需使用GPT格式进行分区.创建大于2TB的分区,需使用parted工具
  • 基于GPT格式对10TB硬盘进行分区,操作如下:
    1. parted -s /dev/sdc mklabel gpt:设置分区类型为gpt格式
    2. mkfs.ext3 /dev/sdc:基于ext3文件系统类型格式化
    3. mount /dec/sdc /data:挂载/dev/sdc设备至/data
  • 假设/dev/sdc为10TB硬盘,使用GPT格式来格式化磁盘
image.png
  • 执行命令parted -s /dev/sdc mklabel gpt
image.png
image.png
  • 基于mkfs.ext3 /dev/sdc格式化磁盘,parted命令行也可以进行分区,依次输入如下命令:
    • parted→select /dev/sdc→mklabel gpt→mkpart primary 0 -1→print
    • mkfs.ext3 /dev/sdc
    • mount /dev/sdc1 /data
image.png
image.png
image.png
image.png
image.png

mount命令

  • mount命令工具主要用于将设备或者分区挂载至Linux系统目录下,Linux系统在分区时,基于mount机制将/dev/sda分区挂载至系统目录,将设备与目录挂载之后,Linux系统方可进行文件的读取和存储
参数选项 解释说明
-V 显示mount工具版本号
-l 显示已加载的文件系统列表
-h 显示帮助信息并退出
-v 输出指令执行的详细信息
-n 加载没有写入文件/etc/mtab中的文件系统
-r 将文件系统加载为只读模式
-a 加载文件/etc/fstab中配置的所有文件系统
-o 指定mount挂载扩展参数,常见扩展指令rw、remount、loop等
-o atime 系统在每次读取文档时更新文档时间
-o noatime 系统在每次读取文档时不更新文档时间
-o defaults 使用预设的选项rw,suid,dev,exec,auto,nouser等
-o exec 运行执行档被执行
-o user、-o nouser 使用者可以执行mount/umount的动作
-o remount 将已挂载的系统分区重新以其他模式再次挂载
-o ro 只读模式挂载
-o rw 可读可写模式挂载
-o loop 使用loop模式,把文件当成设备挂载至系统目录
-t 指定mount挂载设备类型,常见类型有nfs、ntfs-3g、vfat、iso9660等,如下面:
iso9660 光盘或光盘镜像
msods Fat16文件系统
vfat Fat32文件系统
ntfs ntfs文件系统
ntfs-3g 识别移动硬盘格式
smbfs 挂载Windows文件网络共享
nfs UNIX/Linux文件网络共享
mount /dev/sdb1 /data  # 挂载/dev/sdb1分区至/data目录

mount /dev/cdrom /mnt  # 挂载/dev/cdrom分区至/mnt目录

mount -t ntfs-3g /dev/sdc /data1  # 挂载/dev/sdc移动硬盘至/data1目录

mount -p remount,rw /  # 重新以读写模式挂载/系统

mount -t iso9660 -o loop centos7.iso /mnt  # 将Centos7.iso镜像文件挂载至/mnt目录

mount -t fat32 /dev/sdd1 /mnt  # 将U盘/dev/sdd1挂载至/mnt目录

mount -t nfs 192.168.1.11:/data /mnt  # 将远程192.168.1.11:/data目录挂载至本地mnt目录

Linux硬盘故障修复

  • 操作系统的分区变成只读文件系统,错误提示为Read-only file system.出现只读文件系统会导致只能读取而无法写入新文件、新数据等操作

  • 造成该问题的原因包括:磁盘老旧长期大量的读写、文件系统文件被破坏、磁盘碎片文件、异常断电、读写终端等

  • 修复步骤:

    1. 远程备份本地其他重要数据,出现只读文件系统,需先备份其他重要数据,基于rsync|scp远程备份,其中/data为源目录,/data/backup/2020为目标备份目录
    rsync -av /data root@192.168.1.11:/data/backup/2020
    
    1. 可以重新挂载/系统,挂载命令如下,测试文件系统是否可以读写
    mount -o remount,rw /
    
    1. 如果重新挂载/系统无法解决问题,则重启CD/DVD光盘引导进入Linux Rescue修复模式.光标选择Troubleshooting,按Enter键,然后选择Rescue a CentOS system,按Enter键
    2. 选择1)"continue"继续操作
    3. 进入修复模式,执行chroot /mnt/sysimage ,df -h显示原来的文件系统
    chroot /mnt/sysimage
    df -h
    
    1. 对异常的分区进行检测并修复,根据文件系统类型执行
    umount /dev/sda3
    fsck.ext4 /dev/sda3 -y
    
    1. 修复完成后重启系统
    reboot
    
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,639评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,277评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,221评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,474评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,570评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,816评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,957评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,718评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,176评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,511评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,646评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,322评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,934评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,755评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,987评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,358评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,514评论 2 348

推荐阅读更多精彩内容

  • 目录磁盘结构磁盘分区磁盘分区管理文件系统管理挂载 一、磁盘结构 (一)设备文件 设备文件:linux系统下一切皆文...
    哈喽别样阅读 993评论 0 0
  • 1 概述 本文通过对讲解了磁盘的基本概念,分区,创建文件系统,挂载,卸载等步骤进行讲解。使得用户能够创建基本的磁盘...
    ghbsunny阅读 1,506评论 0 0
  • 一. 什么是磁盘 绝大多数人对硬盘都不陌生,一块小小的硬盘里,就可以存储海量的照片、音乐和电影等,尤其是你们喜爱的...
    唯爱熊阅读 1,783评论 0 5
  • 计算机组由CPU, Memory(RAM), I/O设备组成 I/O: Disks, Ehtercard(以太网卡...
    SRE1阅读 374评论 0 0
  • 黄大豆2008阅读 210评论 1 1