Loading... <h1><span style="font-size: 14px"><strong><span style="font-family: 宋体">标签:文件系统、分区、挂载</span></strong></span></h1> <h1><span style="font-family:宋体">一、</span>Linux<span style="font-family:宋体">的基本原则</span></h1> <p> 1<span style="font-family:宋体">、一切皆文件(包括硬件);这个原则会会在很多方面得到体现</span>; <span style="font-family: 宋体">磁盘在</span>Linux<span style="font-family:宋体">中也表现为文件,即</span>/dev<span style="font-family:宋体">目录下:</span>IDE,ATA:/dev/hd[a-z] SATA,SCSI,USB,SAS:sd[a-z]<span style="font-family:宋体">。</span> </p> <p> 2<span style="font-family:宋体">、由从多单一目的小程序组成</span> </p> <p> 3<span style="font-family:宋体">、组合小程序完成复杂任务</span> <span style="font-family:宋体">;以小聚大,</span>Linux<span style="font-family:宋体">都告诉我们团队有多重要了。</span></p> <p> 4<span style="font-family:宋体">、尽可能避免捕获用户接口,为了方便脚本编程以实现自动化执行;</span> </p> <p> 5<span style="font-family:宋体">、使用文本文件保存程序的配置数据:使用一个文本编辑器即可完成系统及服务配置工作;</span></p> <p> </p> <h1><span style="font-family:宋体">二、机械硬盘</span></h1> <p style="text-indent:28px"><span style="font-family:宋体">磁道:</span>Track<span style="font-family:宋体">,可以理解为一个圆形盘片由许许多多的同心圆组成,每一个同心圆可以认为是一个磁道。(硬盘是一个高速旋转的东西,当磁盘旋转时,磁头若保持在一个位置上不动,则磁头会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道)</span></p> <p style="text-indent:28px"><span style="font-family:宋体">扇区:</span>Sector<span style="font-family:宋体">,可以联想到“扇形区域”,磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区,每个扇区的大小为</span>512<span style="font-family:宋体">个字节,磁盘驱动器在向磁盘读取和写入数据时应该以扇区为单位。扇区并不一定是对齐的,这是因为磁道的同心圆的周长是不同的,而我们的扇区的大小是一样的,这就造成了最外层了</span>0<span style="font-family:宋体">磁道的扇区要比内层的磁道的扇区要多。</span></p> <p style="text-indent:28px"><span style="font-family:宋体">柱面:</span>Cylinder<span style="font-family:宋体">,硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的</span>0<span style="font-family:宋体">开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。显然,磁盘的柱面数与一个盘面上的磁道数是相等的。</span></p> <p style="text-indent:28px"><span style="font-family:宋体">磁头:</span>Head<span style="font-family:宋体">,当然是读取信息用的了。每个盘面都有自己的磁头,如果盘面的双面都记录信息,那么双面都应该有磁头。所以,硬盘的容量计算公式如下:硬盘的容量</span>=<span style="font-family:宋体">柱面数×磁头数×扇区数×</span>512<span style="font-family:宋体">(字节数)</span></p> <p style="text-indent:28px"><img src="//cto.wang/usr/uploads/2016/07/20160703160322-16.jpg" title="1431529896672062.jpg" /><img src="//cto.wang/usr/uploads/2016/07/20160703160322-91.jpg" title="1431529917325360.jpg" /></p> <p> </p> <p> </p> <p style="text-indent:28px"><span style="font-family:宋体">机械硬盘的</span>0<span style="font-family:宋体">磁道</span>0<span style="font-family:宋体">扇区非常重要,它存放着硬盘主引导记录</span>MBR<span style="font-family:宋体">。也就是说</span>MBR<span style="font-family:宋体">只有</span>512<span style="font-family:宋体">个字节。我们的硬盘是否能够引导启动操作系统就靠它了。</span></p> <p> MBR<span style="font-family:宋体">由三部分构成:</span></p> <p> 1<span style="font-family:宋体">.主引导程序代码,占</span>446<span style="font-family:宋体">字节</span></p> <p> 2<span style="font-family:宋体">.硬盘分区表</span>DPT<span style="font-family:宋体">,占</span>64<span style="font-family:宋体">字节,没</span>16<span style="font-family:宋体">字节表示一个分区;每个硬盘上最多有四个主分区或者三个主分区一个扩展分区。扩展分区必须再分区后才能够使用。分区也无非就是定义了这个分区是从哪个柱面起始到哪个柱面结束。而在一个分区中柱面可能有很多个于是每个分区内又把这些个柱面划分成一个个的块组来简化管理。</span></p> <p> 3<span style="font-family:宋体">.主引导扇区结束标志</span>AA55H</p> <h1><span style="font-family:宋体">三、文件是怎样被存储的</span></h1> <p style="text-indent:28px">1<span style="font-family:宋体">、分区创建完成后要再经过高级格式化创建文件系统后才能用来存储文件,</span>linux<span style="font-family:宋体">常用的文件系统有</span>ext2(<span style="font-family:宋体">不支持日志功能</span>)<span style="font-family:宋体">、</span>ext3<span style="font-family:宋体">、</span>ext4<span style="font-family:宋体">、</span>xfs<span style="font-family:宋体">、</span>swap(<span style="font-family:宋体">交换分区</span>)<span style="font-family:宋体">。因为我们的</span>Linux<span style="font-family:宋体">系统是单根模式的文件目录树,所以我们分分区必须经过挂载后才能使用,也就是分区与目录建立</span>1<span style="font-family:宋体">对</span>1<span style="font-family:宋体">的关联关系。</span></p> <p style="text-indent:28px">2<span style="font-family:宋体">、磁盘提供给我们最小数据单位扇区对于我们的文件系统还是有些较小,于是文件系统在创建的时候就会把扇区组合划分成一个个的</span>block<span style="font-family:宋体">;大小一般为扇区大小</span>2<span style="font-family:宋体">的</span>N<span style="font-family:宋体">次方大小。常用的块大小为</span>1024<span style="font-family:宋体">、</span>2048<span style="font-family:宋体">和</span>4096<span style="font-family:宋体">。</span></p> <p style="text-indent:28px">3<span style="font-family:宋体">、我们的分区是被分成数据区、元数据区、日志区(如果文件系统支持的话)三个部分的</span></p> <p style="text-indent:28px">4<span style="font-family:宋体">、元数据区是存放</span>inode<span style="font-family:宋体">数据信息的</span></p> <p> inode<span style="font-family:宋体">内容:文件名,大小,时间戳,权限,属主、属组,对应的数据存储在哪些磁盘块(组)上</span> <span style="font-family:宋体">,就是讲我们的文件进行边界划分,区分不通的文件内容,防止文件内容交叉。</span></p> <p> <span style="font-family:宋体">数据区才是真正存放我们数据的区域。有时候我们的数据很大在元数据上还可能有多级块组指向、</span></p> <p> <span style="font-family:宋体">计算机是对数字的处理速度最快所有我们每个文件都一个</span>inode<span style="font-family:宋体">编号使用</span>ls -i<span style="font-family:宋体">就能查看到</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160322-61.png" title="1431529974108692.png" /></p> <p style="text-indent:28px">5<span style="font-family:宋体">、每一个文件系统一般都会分为几个</span>block group<span style="font-family:宋体">,每个中都存放着各自的</span>block<span style="font-family:宋体">和</span>inode bitmap,<span style="font-family:宋体">一般第一个</span>block group<span style="font-family:宋体">上有一个</span>superblock<span style="font-family:宋体">,另外几个</span>block <span style="font-family:宋体">上也可能存有备份的</span>superblock<span style="font-family:宋体">。</span></p> <p style="text-indent:28px">Superblock<span style="font-family:宋体">内容:总</span>inode<span style="font-family:宋体">数,总</span>block<span style="font-family:宋体">数,空闲的</span>block<span style="font-family:宋体">数;空闲的</span>inode<span style="font-family:宋体">数;预留给管理员的</span>block<span style="font-family:宋体">数;以及这些</span>block<span style="font-family:宋体">的编号和所在</span>block group<span style="font-family:宋体">。</span></p> <p><span style="font-family:宋体">查看超级块命令示例:</span></p> <p><strong>tune2fs -l </strong><strong><span style="font-family:宋体">设备名称</span></strong></p> <p><strong>dumpe2fs /dev/sda3|less</strong><strong><span style="font-family:宋体">显示所有</span>block group</strong><strong><span style="font-family:宋体">的信息</span> </strong><strong><span style="font-family:宋体">–</span>h </strong><strong><span style="font-family:宋体">显示超级块的信息</span></strong></p> <p> 6<span style="font-family:宋体">、日志系统的含义是在文件文件的</span>inode<span style="font-family:宋体">信息先被写入到日志区,等到数据写入结束后</span>inode<span style="font-family:宋体">信息会从日志区挪到元数据区内。这样我们在对文件系统检测是的速度会提高很多,但是也让我们的文件系统的文件写入增加了一个步骤有可能会写入速度造成影响,我想我们伟大的程序员工程师一定通过各种优化的算法让这个影响可以忽略掉了。</span></p> <p> 7<span style="font-family:宋体">、目录其实也是个文件,他们里面的内容其实就是我们的文件名</span></p> <p> <span style="font-family:宋体">我们的文件存放是先生成</span>inode<span style="font-family:宋体">信息,然后数据写入到数据区内。</span></p> <p> </p> <h1><span style="font-family:宋体">四、</span>Linux<span style="font-family:宋体">的文件目录树:</span> </h1> <p style="text-indent:20px">Linux<span style="font-family:宋体">严格区分字符大小写,文件最长命名</span>255<span style="font-family:宋体">个字符,以【</span>/<span style="font-family:宋体">】为分隔符分开各层级文件。是一课倒置的树</span> <span style="font-family:宋体">。以根【</span>/<span style="font-family:宋体">】为起点所有的文件和路径都在根下。</span></p> <p style="text-indent:20px"><img src="//cto.wang/usr/uploads/2016/07/20160703160322-65.png" title="1431529996103532.png" /></p> <p> </p> <p><span style="font-family:宋体">一个目录:就是一个名称空间</span> </p> <p> <span style="font-family:宋体">相对路径:从非顶级,缺省路径时从当前路径开始</span> </p> <p> <span style="font-family:宋体">绝对路径:从顶级名称空间起始标记的路径</span> /bin/ls</p> <p> Linux <span style="font-family:宋体">是单目录的,分区是挂在到这些目录节点上的(可以理解为分区和目录是绑定的,打开这个目录就是进入这个分区)。</span> </p> <p><span style="font-family:宋体">因为</span>linux<span style="font-family:宋体">的文件众多繁杂,也是为了统一发行商所发行的</span>Linux<span style="font-family:宋体">系统的文件名保持一定的兼容性就有了</span>FHS<span style="font-family:宋体">:</span>Linux (Filesystem Hierarchy Standard)<span style="font-family:宋体">;定义了</span>linux<span style="font-family:宋体">下一些目录的固定应用范围。</span></p> <pre class="brush:bash;toolbar:false">/boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader) /dev: 设备文件 设备文件: 块设备:随机访问,数据块 字符设备:线性访问,按字符为单位 设备号:主设备号(major)和次设备号(minor) /etc:配置文件 /home:用户的家目录,每一个用户的家目录通常默认为 /home/USERNAME /root:管理员的家目录; /lib:库文件 静态库:.a 动态库:.dll, .so (shared object) /lib/modules:内核模块文件 /media:挂载点目录,移动设备 /mnt:挂载点目录,额外的临时文件系统 /opt:可选目录,第三方程序的安装目录 /proc:伪文件系统,内核映射文件 /sys:伪文件系统,跟硬件设备相关的属性映射文件 /tmp:临时文件 /var/tmp: /var:可变化的文件 /bin:可执行文件 /sbin:管理命令 /usr:用户程序</pre> <p>Linux<span style="font-family:宋体">文件的命名规则:</span></p> <p>1<span style="font-family:宋体">、长度不能超过</span>255<span style="font-family:宋体">个字符;</span></p> <p>2<span style="font-family:宋体">、不能使用</span>/<span style="font-family:宋体">当文件名</span></p> <p>3<span style="font-family:宋体">、严格区分大小写</span></p> <p> </p> <h1><span style="font-family:宋体">五、硬盘要经过多少坎坷才能存放文件</span></h1> <h2>5.1 <span style="font-family:宋体">分区</span> </h2> <h3>5.1.1 <span style="font-family:宋体">命令行中列出分区列表</span></h3> <p>[root@zhuzw-centos6 ~]# f<strong>disk -l /dev/sdb #</strong><strong><span style="font-family:宋体">列出硬盘上的所有分区</span> #fdisk –ul </strong><strong><span style="font-family:宋体">可以列出所有磁盘的分区表</span></strong></p> <p> </p> <pre class="brush:bash;toolbar:false">Disk /dev/sdb: 128.8 GB, 128849018880 bytes 255 heads, 63 sectors/track, 15665 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes #扇区大小 I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x6acdf85b Device Boot Start End Blocks Id System /dev/sdb1 1 15665 125829081 5 Extended /dev/sdb5 1 15665 125829049+ 8e Linux LVM</pre> <p> </p> <h3>5.1.2 fdisk<span style="font-family:宋体">的交互式使用之删除分区</span></h3> <p>Fdisk<span style="font-family:宋体">是个交互式的工具</span></p> <pre class="brush:bash;toolbar:false">[root@zhuzw-centos6 ~]# fdisk /dev/sdb #fdisk 后面跟上你想进行分区操作的设备文件即可,就会进入一下界面 WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): m #键入m就会打印出选项菜单 Command action a toggle a bootable flag #设置引导扇区 b edit bsd disklabel #编辑BSD磁盘 c toggle the dos compatibility flag d delete a partition #删除分区 l list known partition types #列出已知分区类型 m print this menu #打印菜单 n add a new partition #新建一个分区 o create a new empty DOS partition table p print the partition table #打印分区表 q quit without saving changes #不保存退出 s create a new empty Sun disklabel t change a partition's system id #修改分区类型 u change display/entry units v verify the partition table w write table to disk and exit #保存退出 x extra functionality (experts only) #专家模式 我的/dev/sdb上已经有两个分区了 Device Boot Start End Blocks Id System /dev/sdb1 1 15665 125829081 5 Extended # 5代表的是扩展分区 /dev/sdb5 1 15665 125829049+ 8e Linux LVM 首先把这两个分区删除 Command (m for help): d #键入d Partition number (1-5): 1 #询问你要删除哪个分区,我们这里选择删除分区1 Command (m for help): p #键入p打印分区表 Disk /dev/sdb: 128.8 GB, 128849018880 bytes 255 heads, 63 sectors/track, 15665 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x6acdf85b Device Boot Start End Blocks Id System Command (m for help): #分区没有了,这是因为/sdb5是建立在扩展分区上进行分区创建的,直接删除扩展分区会让扩展分区上的所有分区全部丢失。在删除扩展分区时一定要慎重。 5.1.3 fdisk的交互式使用之新建分区 Command (m for help): n #键入n创建分区,不区分大小写 Command action e extended #交互式选择 e 扩展分区 p primary partition (1-4) #p主分区 p #键入p选择创建主分区,不区分大小写 Partition number (1-4): 1 #选择分区号 First cylinder (1-15665, default 1): #选择起始柱面,有默认值可以直接回车 Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-15665, default 15665): +500M #选择分区大小,可以使用+size{K,M,G} +大小{K M G} 这里区分大小写 Command (m for help): N Command action e extended p primary partition (1-4) E #键入e选择创建扩展分区,不区分大小写。注意扩展分区需要在进行创建分区才可以使用 Partition number (1-4): 2 First cylinder (66-15665, default 66): Using default value 66 Last cylinder, +cylinders or +size{K,M,G} (66-15665, default 15665): +20G Command (m for help): N Command action l logical (5 or over) #这是针对扩展分区创建分区的选项 p primary partition (1-4) L First cylinder (66-2677, default 66): Using default value 66 Last cylinder, +cylinders or +size{K,M,G} (66-2677, default 2677): +10G</pre> <p> </p> <h3>5.1.3 fdisk<span style="font-family:宋体">的交互式使用之修改分区表示</span>ID</h3> <pre class="brush:bash;toolbar:false">Command (m for help): T #键入T修改分区识别ID,这里一定要修改要不然当你的系统损坏或者重装系统后,有可能会发生原有分区无法正常被识别。如swap lvm RAID Partition number (1-5): 5 #键入分区号,这个/dev/sdb5后面的那个数字 Hex code (type L to list codes): L #再次还科技键入L查看分区识别ID 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris 1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT- 2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx 5 Extended 42 SFS 86 NTFS volume set da Non-FS data 6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility 8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt 9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b 11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor 12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor 14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary 16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS 17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT 1e Hidden W95 FAT1 Hex code (type L to list codes): 8e #键入相应的分区识别ID Changed system type of partition 5 to 8e (Linux LVM) Command (m for help): p Disk /dev/sdb: 128.8 GB, 128849018880 bytes 255 heads, 63 sectors/track, 15665 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x6acdf85b Device Boot Start End Blocks Id System /dev/sdb1 1 65 522081 83 Linux /dev/sdb2 66 2677 20980890 5 Extended /dev/sdb5 66 1371 10490413+ 8e Linux LVM (1)分区创建好了之后,用 fdisk -l 命令可以查看分区情况,但需要注意的是:虽然fidsk命令列出了所有的分区情况,不代表新分区就可以被操作系统识别了, 文件系统是内核的功能(即软件能识别新分区但内核并不能识别),可以用" cat /proc/partitions "命令查看,若要内核能识别需要把分区变化情况同步到内核。 [root@zhuzw-centos6 ~]# cat /proc/partitions major minor #blocks name 8 0 31457280 sda 8 1 512000 sda1 8 2 30944256 sda2 8 16 125829120 sdb 8 17 2104483 sdb1 8 18 1 sdb2 8 21 123724566 sdb5 8 32 83886080 sdc 8 33 83883397 sdc1 253 0 28909568 dm-0 253 1 2031616 dm-1</pre> <p><span style="font-family:宋体">如果内核没有识别我们新创建的分区可以通过以下命令敲几遍,让内核识别我们新创建的分区。</span></p> <p style="text-indent:7px"><strong># partx -a [DEVICE]</strong></p> <p style="text-indent:7px"><strong># kpartx -af [DEVICE]</strong></p> <p><span style="font-size:16px;font-family:宋体;color:#333333">(</span>2<span style="font-size:16px;font-family:宋体;color:#333333">)</span> <span style="font-size:16px;font-family:宋体;color:#333333">要特别注意</span> <span style="font-size:16px;font-family: 宋体;color:#333333">:分区及格式化操作会永久地破坏目前存在于该分区上的任何数据,操作时需要特别小心(操作前对原有数据做备份)!</span></p> <p> </p> <h2>5.2 <span style="font-family:宋体">创建文件系统,也就是高级格式化分区</span></h2> <p>Linux<span style="font-family:宋体">内核是模块化的,这些模块支持动态装载和卸载;</span></p> <p><span style="font-family:宋体">文件系统可能会被直接打包进内核,也可以被编译成内核模块;</span></p> <p><span style="font-family:宋体">也就是说</span>linux<span style="font-family:宋体">支持的文件系统,发行版不一定支持。如果此文件系统在发行版上不被支持而你又想要使用的话可以将此模块动态加载进</span>linux<span style="font-family:宋体">内核中。</span></p> <p> </p> <p><strong><span style="font-size: 16px;font-family:宋体">命令 : mkfs mke2fs, mkfs.ext2, mkfs.ext3, mkfs.ext4 mkfs.xfs</span></strong></p> <h3>5.2.1 mke2fs</h3> <p>mke2fs<span style="font-family:宋体">也非是根据选项来调用</span><strong><span style="font-size:16px;font-family:宋体">mkfs.ext2, mkfs.ext3, mkfs.ext4</span></strong><span style="font-family:宋体">命令来完成文件分区的格式化操作。</span></p> <p> </p> <p> -t {ext2|ext3|ext4}<span style="font-family:宋体">:指定文件系统</span> </p> <p> -b {1024|2048|4096}<span style="font-family:宋体">:指定块大小</span></p> <p> -L LABEL: <span style="font-family:宋体">打标</span></p> <p> -j: <span style="font-family:宋体">相当于</span> -t ext3</p> <p> -i #: <span style="font-family:宋体">每多少字节给创建一个</span>inode<span style="font-family:宋体">,此字节数不应该少小块大小</span></p> <p> -N #: <span style="font-family:宋体">直接指定可用的</span>inode<span style="font-family:宋体">数;</span></p> <p> -m #: <span style="font-family:宋体">指定预留空间占整个分区空间的百分比;默认为</span>5<span style="font-family:宋体">;</span></p> <p> -O<span style="font-family:宋体">:指定分区特性</span></p> <pre class="brush:bash;toolbar:false">[root@zhuzw-centos6 ~]# mke2fs -L "myzhuzw" -b 2048 -m 1 -t ext4 /dev/sdb5 mke2fs 1.41.12 (17-May-2010) 文件系统标签=myzhuzw #卷标为myzhuzw 操作系统:Linux 块大小=2048 (log=1) #-b 2048 将块大小修为2048 默认是4096 分块大小=2048 (log=1) Stride=0 blocks, Stripe width=0 blocks 7733248 inodes, 61862282 blocks 618622 blocks (1.00%) reserved for the super user #预留1.00%的空间给超级用户 第一个数据块=0 Maximum filesystem blocks=598736896 3776 block groups 16384 blocks per group, 16384 fragments per group 2048 inodes per group Superblock backups stored on blocks: #超级块备份 16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 2048000, 3981312, 5619712, 10240000, 11943936, 35831808, 39337984, 51200000 正在写入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 This filesystem will be automatically checked every 23 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.</pre> <p> </p> <h3>5.2.2 Mkfs mkfs [-V] [-t fstype] [fs-options] device [size]</h3> <p>Mkfs <span style="font-family:宋体">也是通过调用</span><strong><span style="font-size:16px;font-family:宋体">mkfs.ext2, mkfs.ext3, mkfs.ext4 mkfs.xfs</span></strong><strong><span style="font-size:16px;font-family:宋体">这几个命令来实现对分区创建文件系统,默认是ext2的文件系统。通过-t 来调整文件系统</span></strong></p> <p> </p> <pre class="brush:bash;toolbar:false">[root@zhuzw-centos6 ~]# mkfs -t ext3 -b 2048 /dev/sdb5 #这里的-b 2048 其实是mkfs.ext3的选项参数 mke2fs 1.41.12 (17-May-2010) 文件系统标签= 操作系统:Linux 块大小=2048 (log=1) 分块大小=2048 (log=1) Stride=0 blocks, Stripe width=0 blocks 7733248 inodes, 61862282 blocks 3093114 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=598736896 3776 block groups 16384 blocks per group, 16384 fragments per group 2048 inodes per group Superblock backups stored on blocks: 16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 2048000, 3981312, 5619712, 10240000, 11943936, 35831808, 39337984, 51200000 正在写入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 This filesystem will be automatically checked every 24 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.</pre> <p> </p> <h4>5.2.3<span style="font-family:宋体">创建交换分区:</span></h4> <p>mkswap [-L LABEL] DEVICE </p> <pre class="brush:bash;toolbar:false">[root@zhuzw-centos6 ~]# mkswap /dev/sdb1 mkswap: /dev/sdb1: warning: don't erase bootbits sectors (dos partition table detected). Use -f to force. Setting up swapspace version 1, size = 2104476 KiB no label, UUID=383b4ec2-9703-46fe-93ac-a4416da0c862</pre> <h3>5.2.4 <span style="font-family:宋体">一些常用的查看和修改命令</span></h3> <h4>blkid: <span style="font-family:宋体">查看指定块设备的信息</span></h4> <pre class="brush:bash;toolbar:false">[root@zhuzw-centos6 ~]# blkid #不加参数为产科所有已经创建文件系统的分区参数,包含卷标UUID 文件系统类型 /dev/sda1: UUID="cf945085-4631-4e6f-a250-7a4d7e2b82ce" TYPE="ext4" /dev/sda2: UUID="rpUYLk-vdqY-k5YM-BRFy-x91e-3jzw-6JB99P" TYPE="LVM2_member" /dev/sdb5: UUID="723ef74d-1a19-47f4-b211-5aa90e50c5c1" SEC_TYPE="ext2" TYPE="ext3" /dev/mapper/vg_zhuzwcentos6-lv_root: UUID="42e29e66-1644-4909-8aa9-87d978686751" TYPE="ext4" /dev/mapper/vg_zhuzwcentos6-lv_swap: UUID="e05e3e78-719d-4061-a623-d88ff219fb45" TYPE="swap". [root@zhuzw-centos6 ~]# blkid /dev/sdb5 #加上分区文件为至查看此分区 /dev/sdb5: UUID="723ef74d-1a19-47f4-b211-5aa90e50c5c1" SEC_TYPE="ext2" TYPE="ext3"</pre> <p> </p> <h4>e2label<span style="font-family:宋体">:查看或设定卷标</span></h4> <pre class="brush:bash;toolbar:false">e2label DEVICE [LABEL] #不加卷标参数为查看,加卷标参数为修改稿卷标 [root@zhuzw-centos6 ~]# e2label /dev/sdb5 my [root@zhuzw-centos6 ~]# e2label /dev/sdb5 zhuzw [root@zhuzw-centos6 ~]# e2label /dev/sdb5 zhuzw</pre> <p> <span style="font-family: 宋体">查看超级块信息:</span></p> <p> # tune2fs -l DEVICE</p> <p> # dumpe2fs -h DEVICE</p> <p> </p> <h4>tune2fs <span style="font-family:宋体">:修改分区属性:</span></h4> <p></p> <pre class="brush:bash;toolbar:false"> -j: ext2 --> ext3 -L LABEL:修改卷标 -m #: 修改预留空间百分比; -O [^]FEATURE: 启用指定特性,特性前加^,表示关闭此种特性 -o [^]mount-options: 开启或关闭指定的挂载选项 块大小是固定的无法修改</pre> <p><span style="font-family:宋体"></span></p> <p> </p> <p><span style="font-size:19px">df: disk free</span> 查看<span style="font-family:宋体">看磁盘空间使用情况</span></p> <p> -h: human-readable <span style="font-family:宋体">易读的显示方式</span></p> <p> -i: <span style="font-family:宋体">显示</span>inode<span style="font-family:宋体">的使用信息而非默认的磁盘空间使用信息</span></p> <pre class="brush:bash;toolbar:false">[root@zhuzw-centos6 /]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_zhuzwcentos6-lv_root 28G 3.3G 23G 13% / tmpfs 491M 72K 491M 1% /dev/shm /dev/sda1 485M 35M 426M 8% /boot /dev/sdb5 117G 83M 111G 1% /mnt/zhuzw [root@zhuzw-centos6 /]# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/mapper/vg_zhuzwcentos6-lv_root 1806896 93172 1713724 6% / tmpfs 125551 3 125548 1% /dev/shm /dev/sda1 128016 38 127978 1% /boot /dev/sdb5 7733248 11 7733237 1% /mnt/zhuzw</pre> <p><span style="font-size:19px">du: disk usage</span> <span style="font-family:宋体">一般用于查看目录总大小</span></p> <p> -s: <span style="font-family:宋体">查看目录大小</span></p> <p> -h: <span style="font-family:宋体">易读的显示方式</span></p> <pre class="brush:bash;toolbar:false">[root@zhuzw-centos6 /]# du -sh /tmp 265M /tmp</pre> <p> </p> <h3>5.2.5 <span style="font-family:宋体">文件系统修复</span></h3> <p><span style="font-family:宋体">凡事有意外;因进程意外中止或系统崩溃等情况导入写入操作非正常中止时,可能会导致文件损坏;此时,应该修复文件系统,需要离线修复,交换分区不能修复。</span></p> <p> </p> <h4>fsck [options] DEVICE</h4> <p>-t fstype #<span style="font-family:宋体">不指也可以自动识别</span></p> <p>-a: <span style="font-family:宋体">自动修复错误</span></p> <p>-r: <span style="font-family:宋体">交互式修复错误</span></p> <p> </p> <pre class="brush:bash;toolbar:false">[root@zhuzw-centos6 ~]# fsck /dev/sdb5 fsck from util-linux-ng 2.17.2 e2fsck 1.41.12 (17-May-2010) zhuzw: clean, 11/7733248 files, 1017347/61862282 blocks</pre> <p> </p> <p><span style="font-size:19px">e2fsck</span>: <span style="font-family:宋体">专用于修改</span>ext<span style="font-family:宋体">系列文件系统</span></p> <p> -y: <span style="font-family:宋体">对问题自动回答为</span>yes</p> <p> -f: <span style="font-family:宋体">强制进行检测</span></p> <p> </p> <h2>5.3 <span style="font-family:宋体">文件系统挂载</span></h2> <p> </p> <p><span style="font-family:宋体">文件系统挂载:默认只有管理员才有权限,可以通过选项来允许普通用户对特定的分区操作</span></p> <p> <span style="font-family:宋体">挂载就是将已经格式化好的分区与目录建立</span>1<span style="font-family:宋体">对</span>1<span style="font-family:宋体">的关联关系。如果这个目录内有文件,原文件会被隐藏。当新的挂载被卸掉后原文件会再次出现。</span></p> <p> </p> <p><span style="font-size:21px">5.3.1 </span><span style="font-size:21px;font-family:宋体">挂载</span> </p> <p><strong><span style="font-family:宋体">命令:</span>mount DEVICE MOUNT_POINT</strong></p> <p> </p> <p> Linux<span style="font-family:宋体">系统默认一般用于挂载点两个目录:</span>/mnt, /media<span style="font-family:宋体">。当然不是挂载到这另个目录上,而是在这两个目录上新建一个目录文件后挂载到你所创建的目录文件上。</span></p> <p> </p> <p> mount [option]… [-t fstype] [-o option] <span style="font-family:宋体">设备</span> <span style="font-family:宋体">挂载点</span></p> <p> <span style="font-family:宋体">挂载点需要事创建并且最好是空闲的目录。</span> </p> <pre class="brush:bash;toolbar:false;">常用的挂载选项: -t fstype:指定文件系统类型 -r: readonly, 只读挂载 -w: read and write, 读写挂载 -L LABEL:以卷标方式指定设备, mount -L MYDATA 挂载点 -U UUID: 以UUID的方式指定设备,mount UUID='uuid' 挂载点, mount -U uuid 挂载点 -a: 自动挂载所有(/etc/fstab文件中定义的)的支持自动挂载设备 -n: 挂载时,不更新/etc/mtab文件 -o option: 默认选项:为rw, suid, dev, exec, auto, nouser, async, and relatime. async:异步I/O,数据写操作先于内存完成,而后再根据某种策略同步至持久设备中 sync: 同步I/O, atime/noatime: 文件和目录被访问时是更新最近一次的访问时间戳 auto/noauto:设备是否支持mount的-a选项自动挂载 diratime/nodiratime: 目录被访问时是更新最近一次的访问时间戳 dev/nodev: 是否支持在此设备上使用设备; exec/noexec: 是否允许执行此设备上的二进制程序文件 suid/nosuid: 是否支持在此设备的文件上使用suid remount: 重新挂载,通常用于不卸载的情况下重新指定挂载选项 ro: 只读 rw: 读写 user/nouser: 是否允许普通挂载此文件设备 acl: 在此设备是支持使用facl,默认不支持; 例如:以指定挂载后支持acl为例: [root@zhuzw-centos6 mnt]# pwd /mnt [root@zhuzw-centos6 mnt]# mkdir zhuzw #新建一个zhuzw目录 [root@zhuzw-centos6 mnt]# cd zhuzw [root@zhuzw-centos6 zhuzw]# ls [root@zhuzw-centos6 zhuzw]# touch a.txt #建一个空文件 [root@zhuzw-centos6 zhuzw]# cd .. #回到父目录 [root@zhuzw-centos6 mnt]# mount /dev/sdb5 /mnt/zhuzw #挂载 [root@zhuzw-centos6 mnt]# mount #查看挂载信息 /dev/mapper/vg_zhuzwcentos6-lv_root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other) /dev/sdb5 on /mnt/zhuzw type ext3 (rw) #我们刚才挂载的文件 [root@zhuzw-centos6 mnt]# mount -o remount -o acl -o ro /dev/sdb5 /mnt/zhuzw #这个-0 多选项要这么用</pre> <h3>5.3.2 <span style="font-family:宋体">卸载</span></h3> <p><span style="font-family:宋体">卸载时必须没有用户在使用此目录才可以</span></p> <p><span style="font-family:宋体">查看哪些进程正在访问挂载的设备:</span></p> <p> fuser -v <span style="font-family:宋体">挂载点</span></p> <p> </p> <p><span style="font-family:宋体">中止正在此挂载点的进程:</span></p> <p> fuser -km <span style="font-family:宋体">挂载点</span></p> <p> </p> <p><span style="font-family:宋体">卸载命令:</span>umount</p> <p> </p> <p>umount DEVICE #umount /dev/sdb5</p> <p>umount MOUNT_POINT #umount /mnt/zhuzw</p> <p> </p> <h3>5.3.3 <span style="font-family:宋体">挂卸载交换分区</span></h3> <pre class="brush:bash;toolbar:false">[root@zhuzw-centos6 ~]# swapon /dev/sdb1 #挂载交换分区 [root@zhuzw-centos6 ~]# free total used free shared buffers cached Mem: 1004412 244448 759964 0 33540 38948 -/+ buffers/cache: 171960 832452 Swap: 4136080 0 4136080 [root@zhuzw-centos6 ~]# swapoff /dev/sdb1 #卸载交换分区 [root@zhuzw-centos6 ~]# free total used free shared buffers cached Mem: 1004412 243332 761080 0 33540 38956 -/+ buffers/cache: 170836 833576 Swap: 2031608 0 2031608</pre> <p> </p> <h3>5.3.4<span style="font-family:宋体">查看所有已经挂载的设备:</span></h3> <pre class="brush:bash;toolbar:false"># mount [root@zhuzw-centos6 mnt]# mount #查看挂载信息 /dev/mapper/vg_zhuzwcentos6-lv_root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) vmware-vmblock on /var/run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other) /dev/sdb5 on /mnt/zhuzw type ext3 (rw) #我们刚才挂载的文件 # cat /proc/mounts [root@zhuzw-centos6 mnt]# cat /proc/mounts rootfs / rootfs rw 0 0 proc /proc proc rw,relatime 0 0 sysfs /sys sysfs rw,seclabel,relatime 0 0 devtmpfs /dev devtmpfs rw,seclabel,relatime,size=491792k,nr_inodes=122948,mode=755 0 0 devpts /dev/pts devpts rw,seclabel,relatime,gid=5,mode=620,ptmxmode=000 0 0 tmpfs /dev/shm tmpfs rw,seclabel,relatime 0 0 /dev/mapper/vg_zhuzwcentos6-lv_root / ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0 none /selinux selinuxfs rw,relatime 0 0 devtmpfs /dev devtmpfs rw,seclabel,relatime,size=491792k,nr_inodes=122948,mode=755 0 0 /proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0 /dev/sda1 /boot ext4 rw,seclabel,relatime,barrier=1,data=ordered 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0 vmware-vmblock /var/run/vmblock-fuse fuse.vmware-vmblock rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other 0 0 /etc/auto.misc /misc autofs rw,relatime,fd=7,pgrp=1911,timeout=300,minproto=5,maxproto=5,indirect 0 0 -hosts /net autofs rw,relatime,fd=13,pgrp=1911,timeout=300,minproto=5,maxproto=5,indirect 0 0 /dev/sdb5 /mnt/zhuzw ext3 ro,seclabel,relatime,errors=continue,acl,barrier=1,data=ordered 0 0 # cat /etc/mtab [root@zhuzw-centos6 mnt]# cat /etc/mtab /dev/mapper/vg_zhuzwcentos6-lv_root / ext4 rw 0 0 proc /proc proc rw 0 0 sysfs /sys sysfs rw 0 0 devpts /dev/pts devpts rw,gid=5,mode=620 0 0 tmpfs /dev/shm tmpfs rw,rootcontext="system_u:object_r:tmpfs_t:s0" 0 0 /dev/sda1 /boot ext4 rw 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0 vmware-vmblock /var/run/vmblock-fuse fuse.vmware-vmblock rw,nosuid,nodev,default_permissions,allow_other 0 0 /dev/sdb5 /mnt/zhuzw ext3 ro,acl 0 0</pre> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信