写博客,对我来说不仅是学习的过程,也是一个心理历练的过程,多说无益,开始吧!!!
博客是马哥视频里的博客作业:文件系统的创建、修改和检测。我就从磁盘管理开始把
环境:
创建的centos6.5虚拟机
磁盘空间大小20G
装机过程中手动分区,预留了10G左右的空间用来练习
[root@scm-dzm ~]# uname -a Linux scm-dzm 2.6.32-504.el6.i686 #1 SMP Wed Oct 15 03:02:07 UTC 2014 i686 i686 i386 GNU/Linux
一、一些概念,虽然一知半解,但也有助于对整体知识的理解和把握
固态硬盘现在越来越便宜也越来越常见了,但是现在还没有普遍使用,仅用于企业I/O压力过大时用于救命的。
这里要说的还是关于机械式硬盘,硬盘是主机的I/O设备,它是通过主板与主机的其他组件连接起来并协调工作的
a.计算机的组成部分
1,最底层是硬件设备,主要包括三个组件:CPU,内存,I/O设备 CPU:cpu由控制器和运算器组成 内存:当下要被cpu处理的数据和要使用的程序,cpu不能从内存以外的任何位置取数据 I/O设备:常见的有硬盘和网卡,网卡是通过网络交换数据,硬盘给本地提供设备的持久存贮功能,还有键盘鼠标等设备
2,内核: 管理组件能够协调工作 将硬件规格接口抽象给程序员 硬件驱动由硬件厂商提供,由内核管理
b.I/O端口
每个硬件设备都需要在cpu上注册一个不同的终端信号 I/Oports:I/O设备地址,在硬件层次的地址标志
c.linux上硬件设备被识别为文件
设备文件类型:块设备clock(例如磁盘),字符设备char(例如键盘) 设备文件的作用:关联至一个设备驱动程序,进而能够与之对应的硬件设备进行通信。硬盘的设备文件也是如此 每个硬件设备在内核都是靠一个设备号来识别的,不同类别的设备号码是不同的,其中主设备号(major number)标识设备类型,次设备号(minor number)标识同一设备类型的不同设备,同时设备只有元数据没有数据 设备文件存储位置:/dev/DEV_FILE
d.磁盘
设备的接口类型
并行:交换速率慢,为了避免干扰 IDE 133MB/s SCSI3.0640MB/s 串口: SATA6Gbps SAS6Gbps USB3.0480MB/s rpm:转速,7200 10000 15000
磁盘设备的设备文件命名
IDE:/dev/hd SCST SATA SAS USB:/dev/sd 不同设备:a~z 例如:/dev/sda /dev/sdb等等 同一设备不同的分区: 例如:/dev/sda1 /dev/sda2...
机械式硬盘:双面可读写的
磁道:track
柱面:cylinder,号码形同的多个磁道组成的柱体
扇区:sector
分区方式:
按柱面分区
0柱面0扇区:512bytes
MBR:master boot record主引导记录 446bytes:boot load 引导加载器 64bytes:分区表,16bytes标识1个分区,总共标识4个分区 所以如果对1个磁盘想4个以上的分区,就必须有1个扩展分区,一般都是3个主分区,1个扩展分区,1个扩展分区又可以划分多个逻辑分区 2bytes:MBR的有效性标识55AA
二、磁盘分区
1. 工具:fdisk parted sfdisk
fdisk:对于一个硬盘来讲,最多只能管理15个分区
fdisk -L [DEVICE] <-查看分区
fdisk DEVICE <-分区
例子:
[root@scm-dzm ~]# fdisk -l Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 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: 0x000428cc Device Boot Start End Blocks Id System /dev/sda1 * 1 1275 10240000 83 Linux /dev/sda2 1275 1406 1048576 82 Linux swap / Solaris
详解:整个磁盘空间21.5GB,21474836480 bytes 255个磁头,每个磁道63个扇区,2610个柱面 512×63×255表示一个柱面大小,512×63×255×2610就是磁盘的大小,共63×255×2610扇区 I/O size (minimum/optimal) 磁盘标识符 磁盘分区 设备名称引导 开始柱面结束柱面块数量 分区ID号 系统类型
[root@scm-dzm ~]# fdisk /dev/sda 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 c toggle the dos compatibility flag d delete a partition# 删除分区 l list known partition types# 查看所支持的分区类型以及编号ID m print this menu# 查看帮助 n add a new partition# new,新建分区 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 # 调整分区ID u change display/entry units # v verify the partition table w write table to disk and exit # 保存此次操作 x extra functionality (experts only) Command (m for help): n <- 输入子命令n,新建分区 Command action e extended p primary partition (1-4) e <- 输入分区类型为扩展分区 Partition number (1-4): 4 <- 输入分区编号为4,以下均默认,将剩余空间全部分给扩展分区 First cylinder (1406-2610, default 1406): Using default value 1406 Last cylinder, +cylinders or +size{K,M,G} (1406-2610, default 2610): Using default value 2610 Command (m for help): n Command action l logical (5 or over) p primary partition (1-4) l <- 输入l选择创建逻辑分区 First cylinder (1406-2610, default 1406): <- 直接回车,默认从1406柱面开始 Using default value 1406 Value out of range. Last cylinder, +cylinders or +size{K,M,G} (1406-2610, default 2610): +2G <- 创建2G大小的分区 Command (m for help): w <- 输入子命令w保存分区并退出 The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. 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) Syncing disks.
2.通知系统分区变化
命令partx,kpartx,和centos5使用的partprobe
查看已被内核识别的分区( cat /proc/partitions),刚才创建的分区并未识别:
[root@scm-dzm ~]# cat /proc/partitions major minor #blocks name 8 0 20971520 sda 8 1 10240000 sda1 8 2 1048576 sda2
partx命令说明
-a DEVICE扫描整个磁盘
–nr M-N
M:
:
kpartx命令说明
-a DEVICE
-f DEVICE
[root@scm-dzm ~]# partx -a /dev/sda BLKPG: Device or resource busy<- 据说由于虚拟机的原因才有这个报错 error adding partition 1 BLKPG: Device or resource busy error adding partition 2
[root@scm-dzm ~]# cat /proc/partitions major minor #blocks name 8 0 20971520 sda 8 1 10240000 sda1 8 2 1048576 sda2 8 4 31 sda4 8 5 2100546 sda5 8 6 530113 sda6
kpartx这个命令载入新分区失败
三、创建文件系统
1. 常见的文件系统
linux文件系统
ext2
ext3
ext4
xfs
btrfs
reiserfs
swap
光盘系统:ISO9660
交换分区对于不同的应用要求不同 ① oracle,mysql数据库系统,如果一旦把内存数据放回硬盘上,性能会急剧下降,对于这种设备,交换分区一般512-1G就够了,但物理内存一般需达到64G-512G ② 对于批处理系统,内存使用率不高,对于机器运行的性能要求也不是很高,swap可以设置的比较大,一般等于物理内存,不过8G已经非常大了
windows:fat32,ntfs
unix:FFS UFS JFS2
网络文件系统:NFS cifs
集群文件系统:GFS2 OCF2
分布式文件系统:ceph moosefs mogileft lustre
2. 创建文件系统
支持的文件系统:cat /proc/filesystems 可查看,lsmod可查看内核加载的模块
创建文件系统的命令mkfs,mke2fs,mkfs.FS_TYPE:
mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev mkfs.msdos mkfs.vfat
mkfs.ext4 mkfs.ext2 mkfs.ext3 & mke2fs等如下选项意义一样,可man查看
-t fs-type {ext2|ext3|ext4}
-b block-size {1024|2048|4096} # 设置块大小,创建好的文件系统不能在修改此值
-L new-volume-label # 设置卷标
-i bytes-per-inode # 多少字节创建一个inode
-N number-of-inodes # 设置创建inode的数量
-m reserved-blocks-percentage # 为管理员预留空间的百分比,默认5%
-O feature[,…] # 启用指定特性,-O ^feature关闭指定特性
命令的使用:
[root@scm-dzm ~]# mkfs.ext4 -L MySystem -b 4096 -m 3 /dev/sda5 mke2fs 1.41.12 (17-May-2010) Filesystem label=MySystem OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 131376 inodes, 525136 blocks 15754 blocks (3.00%) reserved for the super user First data block=0 Maximum filesystem blocks=541065216 17 block groups 32768 blocks per group, 32768 fragments per group 7728 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 29 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
3. 查看块设备属性
命令blkid,e2label,tune2fs
blkid:
-U UUID # 根据指定的UUID查找指定设备
-L LABEL # 根据指定的LABEL查找指定设备
[root@scm-dzm ~]# blkid /dev/sda5 /dev/sda5: LABEL="MySystem" UUID="8e383118-3e91-4393-b602-f24cb3d0256f" TYPE="ext4" [root@scm-dzm ~]# blkid -U 8e383118-3e91-4393-b602-f24cb3d0256f /dev/sda5
[root@scm-dzm ~]# blkid -L MySystem /dev/sda5
[root@scm-dzm ~]# blkid -O full /dev/sda1: UUID="7336f3a1-61ce-4ff5-9aba-e71a26748f74" TYPE="ext4" /dev/sda2: UUID="db406704-df06-46a2-a44f-94bb91c7daf4" TYPE="swap" /dev/sda5: LABEL="MySystem" UUID="8e383118-3e91-4393-b602-f24cb3d0256f" TYPE="ext4"
e2label:
e2label /dev/sda5 # 查看LABEL
e2label /dev/sda5 "NewLable" # 设置LABEL
[root@scm-dzm ~]# e2label /dev/sda5 "NewLable" [root@scm-dzm ~]# blkid -L NewLable /dev/sda5
tune2fs
-l device # 查看指定分区的超级快信息
-L "NewLabel" # 修改卷标
-m # # 修改预留给管理员的空间的百分比
-j # 升级fs
-O feature # 启用指定特性,-O ^feature关闭指定特性
-o # 调整文件系统的默认挂载选项,加^表示取消
-u UUID # 修改UUID
[root@scm-dzm ~]# tune2fs -l /dev/sda5 tune2fs 1.41.12 (17-May-2010) Filesystem volume name: NewLable Last mounted on: <not available> Filesystem UUID: 8e383118-3e91-4393-b602-f24cb3d0256f Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize Filesystem flags: signed_directory_hash Default mount options: (none) Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 131376 Block count: 525136 Reserved block count: 15754 Free blocks: 499721 Free inodes: 131365 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 128 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 7728 Inode blocks per group: 483 Flex block group size: 16 Filesystem created: Thu Jun 23 17:02:23 2016 Last mount time: n/a Last write time: Thu Jun 23 17:28:50 2016 Mount count: 0 Maximum mount count: 29 Last checked: Thu Jun 23 17:02:23 2016 Check interval: 15552000 (6 months) Next check after: Tue Dec 20 17:02:23 2016 Lifetime writes: 97 MB Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Journal inode: 8 Default directory hash: half_md4 Directory Hash Seed: 419725ca-0c22-4146-885a-0044b03a19ee Journal backup: inode blocks [root@scm-dzm ~]# tune2fs -L "NNewLabel" /dev/sda5 tune2fs 1.41.12 (17-May-2010)
[root@scm-dzm ~]# blkid -L NNewLabel /dev/sda5
[root@scm-dzm ~]# tune2fs -o user_xattr /dev/sda5 tune2fs 1.41.12 (17-May-2010) [root@scm-dzm ~]# tune2fs -o acl /dev/sda5 tune2fs 1.41.12 (17-May-2010)
关于超级块保存了很多信息:整个分区中的整个结构划分保存在超级块中,有多少块组,每组拥有多少块,每个组分别从第几块开始从第几块结束,每个块多大,而且每个组中有多少块占用,有多少块free
如果超级块丢失,整个分区将无法使用,所以超级块在分区中有很多个备份,再出现意外时用来恢复分区的
4. 创建交换分区
首先需要使用工具fdisk调整分区的ID为82,然后做如下操作
[root@scm-dzm ~]# mkswap -L MySwap /dev/sda6 Setting up swapspace version 1, size = 530108 KiB LABEL=MySwap, UUID=3b99e1ac-60f8-4ae1-9453-5c9cdee86266
四、 文件系统检测
工具:fsck.FS_TYPE 或者fsck -t FS_TYPE
-a # 自动修复
-r # 交互式修复
[root@scm-dzm ~]# fsck.ext4 -a /dev/sda5 NNewLabel: clean, 11/131376 files, 25415/525136 blocks
工具:e2fsck:ext系列文件系统专用检测修复工具
-y # 自动修复
-f # 强制修复
[root@scm-dzm ~]# e2fsck -y /dev/sda5
e2fsck 1.41.12 (17-May-2010) NNewLabel: clean, 11/131376 files, 25415/525136 blocks
五、最后总结:
1. 首先分区fdisk parted sfdisk
2. 通知内核载入分区partx,kpartx,和centos5使用的partprobe
3. 创建文件系统:
mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev mkfs.msdos mkfs.vfat mkfs,mke2fs
创建swap分区
mkswap
查看创建的文件系统:命令blkid,e2label,tune2fs
4. 真正想要使用分区还需要挂在:mount
原创文章,作者:Net20_天意,如若转载,请注明出处:http://www.178linux.com/19815