1.磁盘结构
硬盘是什么?在电脑中扮演的角色是什么?
有人把电脑比喻成剧院,内存比喻成舞台,硬盘就是后台,程序就是演员。
内存:
舞台大了可以一起表演的演员就多啦,所以舞台大小决定演员的活动能力,如果有个足球场那么大的舞台,只表演对口相声,也没有啥用。所以内存大点好,但是也要看用来做什么,根据需要选择合适的内存。
硬盘:
当演员在准备和休息时,就在会在后台歇着,你的节目越多,种类越多就需要越大的后台,但他们不要同时出现在舞台,所以舞台不太那么大。后台没有舞台那么好的装修和灯光等,所以成本也要低些。
head:磁头
track:磁道
cylinder: 柱面
secotr: 扇区,512bytes
硬盘是一种采用磁介质的数据存储设备,数据存储在密封于洁净的硬盘驱动器内腔的若干个磁盘片上。这些盘片一般是在以的片基表面涂上磁性介质所形成,在磁盘片的每一面上,以转动轴为轴心、以一定的磁密度为间隔的若干个同心圆就被划分成磁道(track),每个磁道又被划分为若干个扇区(sector),数据就按扇区存放在硬盘上。在每一面上都相应地有一个读写磁头(head),所以不同磁头的所有相同位置的磁道就构成了所谓的柱面(cylinder)。传统的硬盘读写都是以柱面、磁头、扇区为寻址方式的(CHS寻址)。硬盘在上电后保持高速旋转,位于磁头臂上的磁头悬浮在磁盘表面,可以通过步进电机在不同柱面之间移动,对不同的柱面进行读写。
文件存储在硬盘若干个扇区中,操作系统读取硬盘是不会一个一个扇区来读,而是一次读取多个扇区,也就是一次读取一块儿(block),这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。
2.分区方式
划分分区优点
实现磁盘空间配额限制
提高修复速度(按分区)
隔离系统和程序
使用不同文件系统
优化IO性能 日志一类实时性的可以单独划分一个分区
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
分区方式分类
MBR GPT
MBR
MBR 使用32位表示扇区数,分区不超过2T
分区不能超过2T
分区按柱面划分,8M
MBR位于0磁道0扇区共512字节:
446字节存放计算机引导脚本 bootloader->grub/grub2
DPT 64个字节来存放分区表
16个字节标识一个分区
2个字节表示位 55AA(表示有分区)
所以导致了主分区只能有4个
逻辑分区引导使用EBR,一个逻辑分区一个EBR
早的时候一个柱面一个扇区
centos6 划分是按柱面划分分区
centos7 划分是按扇区划分分区
fdisk -l -u=cylinders将centos7版本按照磁道划分
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
GPT
GPT:GUID partition table
支持128分区
采用64位结构
最大支持8Z
block
128位uuid表示分区磁盘 分区表存放于头部和尾部
UEFI硬件接口支持GPT
头部LBA 0存放伪MBR
LBA 1-128 存放GUID头和分区和备份信息
3.管理分区
分区管理
分区查看
查看内存已识别的硬盘及分区信息
[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 100G 0 disk ├─sda1 8:1 0 30G 0 part /boot └─sda2 8:2 0 32G 0 part ├─centos-root 253:0 0 10G 0 lvm / ├─centos-swap 253:1 0 2G 0 lvm [SWAP] └─centos-testdir 253:2 0 20G 0 lvm /testdir sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 1G 0 part sdc 8:32 0 20G 0 disk sdd 8:48 0 20G 0 disk sr0 11:0 1 7.2G 0 rom
查看是否写入内存
[root@localhost ~]# cat /proc/partitions major minor #blocks name 2 0 4 fd0 8 0 104857600 sda 8 1 31457280 sda1 8 2 33562624 sda2 8 16 20971520 sdb 8 17 1048576 sdb1 8 32 20971520 sdc 8 48 20971520 sdd 11 0 7587840 sr0 253 0 10485760 dm-0 253 1 2097152 dm-1 253 2 20971520 dm-2
直接查看设备文件
[root@localhost ~]# ls /dev/sd* /dev/sda /dev/sda2 /dev/sdb1 /dev/sdd /dev/sda1 /dev/sdb /dev/sdc
创建分区
交互式:
工具一:fdisk
创建分区 fdisk 磁盘 fdisk /dev/sdb
ps:建议用于MBR分区格式
fdisk -l [-u] [device...]
fdisk /dev/sab
ps:一定要跟上硬盘
进入交付式
[root@localhost ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0xefaff5f4. 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 删除分区 g create a new empty GPT partition table G create an IRIX (SGI) partition table 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) Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended p 主分区 e扩展分区 Select (default p): p 1 Partition number (1-4, default 1): 1 First sector (2048-41943039, default 2048): 创建分区类型及分区第几个分区 柱面起始 Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 分区大小 格式是 +size[K|M|G] Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +10G Partition 1 of type Linux and of size 10 GiB is set Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xefaff5f4 Device Boot Start End Blocks Id System /dev/sdb1 2048 20973567 10485760 83 Linux
保存退出查看
[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 100G 0 disk ├─sda1 8:1 0 30G 0 part /boot └─sda2 8:2 0 32G 0 part ├─centos-root 253:0 0 10G 0 lvm / ├─centos-swap 253:1 0 2G 0 lvm [SWAP] └─centos-testdir 253:2 0 20G 0 lvm /testdir sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 10G 0 part sdc 8:32 0 20G 0 disk sdd 8:48 0 20G 0 disk sr0 11:0 1 7.2G 0 rom
退出可能会出现如下错误
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
ps:如果保存退出报错说分区表未写入
这种情况是出现在这块磁盘的有分区已经被使用,也就是分区旧表正在被使用,要生效需要重新更新。
解决方法
partx -a /dev/sdb
ps:cetnos6使用partx,-a只用于增加分区
解决删除分区后不同步:
partx -d --nr 7-8 /dev/sdb
连续范围使用 - 例如分区6,7,8可以使用 6-8
如果删除不连续需要一个一个指定范围
使用-d 加上范围
同步至分区表
注:以上为centos 6
CentOS 5和7: 使用partprobe
partprobe
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
工具二:gdisk
管理GPT分区格式
命令交互式一样
创建分区 按扇区划分
[root@localhost ~]# gdisk /dev/sdc GPT fdisk (gdisk) version 0.8.6 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. Command (? for help): ?#帮助信息 b back up GPT data to a file c change a partition's name d delete a partition i show detailed information on a partition l list known partition types n add a new partition o create a new empty GUID partition table (GPT) p print the partition table q quit without saving changes r recovery and transformation options (experts only) s sort partitions t change a partition's type code v verify disk w write table to disk and exit x extra functionality (experts only) ? print this menu Command (? for help): n Partition number (2-128, default 2): 2 First sector (34-41943006, default = 4196352) or {+-}size{KMGTP}: +1G Last sector (6293504-41943006, default = 41943006) or {+-}size{KMGTP}: +1G Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem' Command (? for help): P Disk /dev/sdc: 41943040 sectors, 20.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): CC081A97-F46D-4835-8650-02C6F0D615FA Partition table holds up to 128 entries First usable sector is 34, last usable sector is 41943006 Partitions will be aligned on 2048-sector boundaries Total free space is 37748669 sectors (18.0 GiB) Number Start (sector) End (sector) Size Code Name 1 2099200 4196351 1024.0 MiB 8300 Linux filesystem 2 6293504 8390655 1024.0 MiB 8300 Linux filesystem Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/sdc. The operation has completed successfully. [root@localhost ~]# cat /proc/partitions major minor #blocks name 2 0 4 fd0 8 0 104857600 sda 8 1 31457280 sda1 8 2 33562624 sda2 8 16 20971520 sdb 8 17 1048576 sdb1 8 32 20971520 sdc 8 33 1048576 sdc1 8 34 1048576 sdc2 8 48 20971520 sdd 11 0 7587840 sr0 253 0 10485760 dm-0 253 1 2097152 dm-1 253 2 20971520 dm-2
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
非交互式
工具三: parted
parted /dev/sdb mklabel gpt
parted /dev/sdb mklabel primary 1 1024
parted /dev/sdb print
查看
parted /dev/sdb rm 2
删除
ps:因为parted操作是实时性,所以请谨慎操作
4.文件系统
文件系统是操作系统上明确设备或分区上的文件的方式和数据结构。
不同文件系统功能不一样
linux文件系统包括:ext2 ,ext3 ,ext4 xfs{SGI公司},btrfs{oracle公司},reiserfs(世界上最老的文件系统)jfs{aix},swap:交换分区 光盘:iso9660;
windows:fst32,ntfs;
Unix:FFS{FAST} UFS JFS2;
网络文件系统:NFS,CIFS{Windows文件共享};
集群文件系统:GFS2,OCFS2{oracle};
分布式文件系统ceph ,moosefs,mogilefs,glusterfs;
Linux的虚拟文件系统:VFS
RAW:未经处理或者未经格式化产生的文件系统{oracle数据库};
文件系统分类:
按 has_journal日志功能分类
日志型:ext3,ext4,xfs
非日志型:ext2,vfat
当用户操作磁盘上某一文件将文件首先调入内存,进行处理,然后查看其是否支持日志功能,如果支持则将其修改的最终动作{修改多次是不会马上写入硬盘,在内存中存储一段时间}记录进日志文件,然后将其写入硬盘。
lsmod命令: 用于显示已经加载到内核中的模块的状态信息。
通常在使用lsmod命令时,都会采用类似
lsmod | grep -i ext3
这样的命令来查询当前系统是否加载了某些模块。
文件系统组成部分:
内核中的模块:ext4, xfs, vfat
用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
文件系统的使用
linux系统支持的文件系统
mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs
mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat
设置分区文件系统
命令一:mkfs.ext4
mkfs.ext4 -b 1024 更改文件系统并指定块大小
mkfs.ext3 /dev/sdb1 设置文件系统为ext3
mkfs.ext4 -L 卷标名
修改分区文件系统并设置卷标名字
命令二:mke2fs
ps:只支持EXT文件系统
mke2fs /dev/sdb1
设置文件系统默认ext2
mke2fs -j /dev/sdb1
将分区文件系统设置成ext3
-i为数据空间与inode之比
-N 指定inode个数
-I 一个inode大小设置
-m 保留的块数量设置单位为%
mke2fs -t ext4 /dev/sdb1 ext4
设置分区文件系统
命令三:查看分区属性;更改文件系统默认功能
tune2fs -l /dev/sdb1查看分区文件系统超级块
tune2fs -O ^has_journal /dev/sdb3
blkid
-O ^取消功能
-O 更改文件系统功能
-U 更改UUID
uuidgen随记生成UUID
-i为数据空间与inode之比
-N 指定inode个数
-I 一个inode大小设置
-m 保留的块数量设置单位为%
-L 设置分区卷标名
tune2fs --help
命令四:块设备属性信息
blkid /dev/sdb1
[root@localhost ~]# blkid /dev/sdb1 /dev/sdb1: UUID="62cb0b57-358a-4f6a-a6db-049548880ece" TYPE="ext2"
blkid -L
卷标名搜索
blkid -U UUID
搜索UUID对应的分区
命令五:查看超级块信息
超级块 存储分区原数据
[root@localhost ~]# dumpe2fs /dev/sdc1 dumpe2fs 1.42.9 (28-Dec-2013) Filesystem volume name: <none> Last mounted on: <not available> Filesystem UUID: 32eb5152-4552-4e76-bbd3-121ce38b0380 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super large_file Filesystem flags: signed_directory_hash Default mount options: user_xattr acl Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 65536 Block count: 262144 Reserved block count: 13107 Free blocks: 249500 Free inodes: 65525 First block: 0 Block size: 4096 Fragment size: 4096 Reserved GDT blocks: 63 Blocks per group: 32768 Fragments per group: 32768 Inodes per group: 8192 Inode blocks per group: 512 Filesystem created: Wed Aug 24 20:53:44 2016 Last mount time: n/a Last write time: Wed Aug 24 20:53:44 2016 Mount count: 0 Maximum mount count: -1 Last checked: Wed Aug 24 20:53:44 2016 Check interval: 0 (<none>) 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: e68e14db-7b45-4115-8b89-fc9fca1fae19 Journal backup: inode blocks Journal features: (none) Journal size: 32M Journal length: 8192 Journal sequence: 0x00000001 Journal start: 0
centos 6 默认挂载后没有一些挂载选项功能,例如acl。
需要使用tune2fs -O acl 增加功能
增加后需要重新挂载
命令六:fsck修复文件系统 修复逻辑性错误
交互式恢复
-a自动修复
-r 交互式修复
命令七:mknod 命令用于创建Linux中的字符设备文件和块设备文件。
#语法 mknod 选项 参数 #选项 -Z:设置安全的上下文; -m:设置权限模式; -help:显示帮助信息; --version:显示版本信息。 #参数 ###文件名:要创建的设备文件名; ###类型:指定要创建的设备文件的类型; ###主设备号:指定设备文件的主设备号; 次设备号:指定设备文件的次设备号。 #例子 [root@localhost testdir]# ll /dev/sr0 brw-rw----+ 1 root cdrom 11, 0 Aug 24 19:18 /dev/sr0 [root@localhost testdir]# mknod /testdir/sr0 b 11 0 [root@localhost testdir]# ll sr0 brw-r--r--. 1 root root 11, 0 Aug 24 22:30 sr0
五.挂载
挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为
卸载:为解除此关联关系的过程
mount
遵循:多个设备不能挂载在一个挂载点
一个设备可以挂载在多个挂载点
最好使用挂载都挂载在根文件系统下
手动挂载选项
-L 按卷标挂载
[root@localhost ~]# blkid /dev/sdb1 /dev/sdb1: LABEL="/mnt/sdb1" UUID="721a1978-3862-47da-92cd-9c3c701ec775" TYPE="ext2" [root@localhost ~]# mount -L /mnt/sdb1 /mnt/sdb1 [root@localhost sdb1]# ll total 16 drwx------. 2 root root 16384 Aug 24 21:06 lost+found
-U 按UUID挂载
[root@localhost mnt]# mount -U 721a1978-3862-47da-92cd-9c3c701ec775 /mnt/sdb1 [root@localhost mnt]# ls /mnt/sdb1 lost+found
-t 挂载使用的文件系统默认不用写
-r 只读挂载
-w =rw 读写挂载默认为w
mount可直接查看其权限
-n 不更新/etc/mtmp
-B 绑定目录到另一个目录上
cat /proc/mounts查看内核追踪到一挂载的所有设备
mount -o (挂载文件系统选项)
async 异步模式defaults
sync 同步模式,开启同步模式同步每一次修改
mount -o sync
atime/noatime 访问时间,都包含目录文件时间
diratime/nodiratime 目录访问时间戳
auto/noauto 是否支持自动挂载
exec/noexec 是否支持运行程序
suid/nosuid sgid/nosgid 是否支持特殊权限;默认不启用
remount 重新挂载
user/nouser 普通用户是否支持挂载
dev/nodev 挂载的设备文件是否能够使用
卸载
umount 挂载点
umount卸载报错
umount: /mnt/sdb1: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
处理:
fuser -v /mnt/sdb1
查看用户使用的挂载点
lsof /mnt/sdb3 查看进程
fuser -km /mnt/sdb3
强制踢出使用其用户{杀用户登录的进程}
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
自动挂载配置文件
/etc/fstab
ps:设备写入配置文件建议写UUID /dev/sdb1
/dev/mapper/centos-testdir /testdir xfs defaults 0 0
自动挂载
文件格式:每行定义一个要挂在的文件系统
一共6个字段:
1)要挂载的设备(可以包含:设备文件;卷标;UUID)
2)挂载点
swap类型设备的挂载点为SWAP
3)文件系统类型
4)挂载选项
defaults:使用默认挂载选项
如果要指明多个挂载选项彼此间以,分割
defaults,acl
5)转储频率
0:从不备份
1:每天备份
2:每隔一天备份
6)自检次序
0:不自检
1:首先自检,通常只能是根文件系统可用
2:初次自检
vim /etc/fstab /dev/sdb1 /mnt/sdb1 ext3 defaults,acl 0 0 #自动挂载sdb1为ext3文件系统格式,并且支持acl
vim /etc/fstab /dev/sr0 /mnt/cdrom iso9660 defaults 0 0 #自动挂载光盘
mount -a #重新挂载文件中支持自动挂载的设备
六.常用处理工具
df
用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
#语法 df 选项 参数 #选项 -a或--all:包含全部的文件系统; --block-size=<区块大小>:以指定的区块大小来显示区块数目; -h或--human-readable:以可读性较高的方式来显示信息; -H或--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes; -i或--inodes:显示inode的信息; -k或--kilobytes:指定区块大小为1024字节; -l或--local:仅显示本地端的文件系统; -m或--megabytes:指定区块大小为1048576字节; --no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值; -P或--portability:使用POSIX的输出格式; --sync:在取得磁盘使用信息前,先执行sync指令; -t<文件系统类型>或--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息; -T或--print-type:显示文件系统的类型; -x<文件系统类型>或--exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息; --help:显示帮助; #举例 1.查看文件系统类型并以易读方式输出 [root@localhost mnt]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 10G 4.1G 5.9G 42% / devtmpfs devtmpfs 898M 0 898M 0% /dev tmpfs tmpfs 913M 96K 913M 1% /dev/shm tmpfs tmpfs 913M 9.0M 904M 1% /run tmpfs tmpfs 913M 0 913M 0% /sys/fs/cgroup /dev/sda1 xfs 30G 165M 30G 1% /boot /dev/mapper/centos-testdir xfs 20G 77M 20G 1% /testdir tmpfs tmpfs 183M 0 183M 0% /run/user/0 tmpfs tmpfs 183M 12K 183M 1% /run/user/1000 /dev/sdb1 ext2 1008M 1.3M 956M 1% /mnt/sdb1 /dev/sr0 iso9660 7.3G 7.3G 0 100% /mnt/cdrom 2.查看所有文件系统 [root@localhost mnt]# df -a Filesystem 1K-blocks Used Available Use% Mounted on rootfs - - - - / sysfs 0 0 0 - /sys proc 0 0 0 - /proc devtmpfs 918792 0 918792 0% /dev securityfs 0 0 0 - /sys/kernel/security tmpfs 934332 96 934236 1% /dev/shm devpts 0 0 0 - /dev/pts tmpfs 934332 9152 925180 1% /run tmpfs 934332 0 934332 0% /sys/fs/cgroup cgroup 0 0 0 - /sys/fs/cgroup/systemd pstore 0 0 0 - /sys/fs/pstore cgroup 0 0 0 - /sys/fs/cgroup/net_cls cgroup 0 0 0 - /sys/fs/cgroup/cpuset cgroup 0 0 0 - /sys/fs/cgroup/blkio cgroup 0 0 0 - /sys/fs/cgroup/freezer cgroup 0 0 0 - /sys/fs/cgroup/devices cgroup 0 0 0 - /sys/fs/cgroup/cpu,cpuacct cgroup 0 0 0 - /sys/fs/cgroup/memory cgroup 0 0 0 - /sys/fs/cgroup/perf_event cgroup 0 0 0 - /sys/fs/cgroup/hugetlb configfs 0 0 0 - /sys/kernel/config /dev/mapper/centos-root 10475520 4296232 6179288 42% / selinuxfs 0 0 0 - /sys/fs/selinux systemd-1 - - - - /proc/sys/fs/binfmt_misc debugfs 0 0 0 - /sys/kernel/debug hugetlbfs 0 0 0 - /dev/hugepages mqueue 0 0 0 - /dev/mqueue sunrpc 0 0 0 - /var/lib/nfs/rpc_pipefs nfsd 0 0 0 - /proc/fs/nfsd /dev/sda1 31441920 168000 31273920 1% /boot /dev/mapper/centos-testdir 20961280 78496 20882784 1% /testdir tmpfs 186868 0 186868 0% /run/user/0 tmpfs 186868 12 186856 1% /run/user/1000 fusectl 0 0 0 - /sys/fs/fuse/connections gvfsd-fuse 0 0 0 - /run/user/1000/gvfs /dev/sdb1 1032088 1284 978376 1% /mnt/sdb1 /dev/sr0 7587292 7587292 0 100% /mnt/cdrom binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc 3.查看文件系统类型和inode号,并以易读方式输出 [root@localhost mnt]# df -hTi Filesystem Type Inodes IUsed IFree IUse% Mounted on /dev/mapper/centos-root xfs 10M 137K 9.9M 2% / devtmpfs devtmpfs 225K 408 224K 1% /dev tmpfs tmpfs 229K 9 229K 1% /dev/shm tmpfs tmpfs 229K 593 228K 1% /run tmpfs tmpfs 229K 13 229K 1% /sys/fs/cgroup /dev/sda1 xfs 30M 330 30M 1% /boot /dev/mapper/centos-testdir xfs 20M 90 20M 1% /testdir tmpfs tmpfs 229K 1 229K 1% /run/user/0 tmpfs tmpfs 229K 25 229K 1% /run/user/1000 /dev/sdb1 ext2 64K 11 64K 1% /mnt/sdb1 /dev/sr0 iso9660 0 0 0 - /mnt/cdrom
du
查看使用空间,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看
#语法 du 选项 参数 -a或-all 显示目录中个别文件的大小。 -b或-bytes 显示目录或文件大小时,以byte为单位。 -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。 -k或--kilobytes 以KB(1024bytes)为单位输出。 -m或--megabytes 以MB为单位输出。 -s或--summarize 仅显示总计,只列出最后加总的值。 -h或--human-readable 以K,M,G为单位,提高信息的可读性。 -x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。 -L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。 -S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。 -X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。 --exclude=<目录或文件> 略过指定的目录或文件。 -D或--dereference-args 显示指定符号链接的源文件大小。 -H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。 -l或--count-links 重复计算硬件链接的文件。 #例子 显示/testdir目录下所有目录和文件的大小,且显示出所有大小的总和 [root@localhost mnt]# du -ch /testdir/ 64K /testdir/bin 236K /testdir/testbin 4.0K /testdir/Temporary Scripts folder 45M /testdir/ 45M total
dd
用于复制文件并对原文件的内容进行转换和格式化处理。
if 代表输入文件。如果不指定if,默认就会从stdin中读取输入;; of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出; bs=<字节数>:将ibs(输入)与欧巴桑(输出)设成指定的字节数; cbs=<字节数>:转换时,每次只转换指定的字节数; conv=<关键字>:指定文件转换的方式; count=<区块数>:仅读取指定的区块数; ibs=<字节数>:每次读取的字节数; obs=<字节数>:每次输出的字节数; of=<文件>:输出到文件; seek=<区块数>:一开始输出时,跳过指定的区块数; skip=<区块数>:一开始读取时,跳过指定的区块数; --help:帮助; --version:显示版本信息。 #例子 1.文件拷贝 dd if=/dev/sda of=/root/sda 2.备份MBR dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1 3.测试硬盘读写速度 [root@localhost testdir]# dd if=/dev/zero of=/root/1.txt bs=1024 count=1000 1000+0 records in 1000+0 records out 1024000 bytes (1.0 MB) copied, 0.00501107 s, 204 MB/s
总结:
硬盘是计算机中用来对数据进行存储和读取的设备,在计算机中扮演着举足轻重的的角色,没有硬盘,就是一个不完整的计算机。计算机系统和分区都是存储在硬盘之中,常用硬盘分区采用 MBR32 位扇区数分区,一个分区大小不能超过2TB,MBR分区只能分四个主分区,包括三个主分区,一个逻辑分区。默认分区后分区使用需要进行挂载使用,挂载是为了建立与根文件系统某现存的目录建立起关联关系,进而使得此目录可做为其它文件访问入口。挂载可采用手动挂载和自动挂载,自动挂载直接将挂载信息写入配置文件,需要注意的是写入格式要正确,否则将会系统再次重新启动失败。
转载于:https://blog.51cto.com/liaoxz/1842290