磁盘一些相关命令

磁盘的管理应该说是作为运维人员的基本功,如:磁盘的管理、查看、分区、识别、调整、检查等工作。

内容还是很多的,这里先记录后整理:

dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换,可以用dd命令测试读写速度
测试指令:dd if=/dev/zero of=/data01/test.dbf bs=8k count=200000 conv=fdatasync
注:cp与dd的区别在于cp可能是以字节方式读取文件,而dd是以扇区方式记取。显然dd方式效率要高些。
dd最大的用处是他可以进行格式转换和格式化。dd是对块进行操作的,cp是对文件操作的

比如:
有两块硬盘,要将第一块硬盘里的数据复制到第二块硬盘上
dd if=/dev/sda of=/dev/sdc bs=4 count=1024
sda和sdc硬盘上数据的布局是一摸一样的(扇区级别,每个扇区上的数据都是一样的)

而如果我们用cp只是将第一硬盘上的数据复制到第二个硬盘上,由于系统写硬盘不是顺序写的,哪里有足够的空间放就放到哪,所以第二个硬盘相同的扇区号上的数据和第一块硬盘是可能不一样的。

dd命令可以用来进行整个partition或者disk的备份

 


 

[root@fp-web-126 ~]# blkid  ##这个命令是用来显示磁盘分区uuid的,在linux系统中每一个分区都会有唯一的一个uuid。 可以用这唯一的uuid来挂载磁盘分区。


 

du -h  dirname:查看指定文件夹下的所有文件大小(包含子文件夹)
 (du 的英文原义为 disk usage,含义为显示磁盘空间的使用情况,用于查看当前目录的总大小)

######查看某个目录下的子文件夹占用磁盘过多。

[root@fp-web-118 3307]# du -h --max-depth=1 /data/3307/

 

 

  

du -sh [目录名]:返回该目录的大小

du -sm [文件夹]:返回该文件夹总M数

[root@fp-web-118 /]# du -h --max-depth=1   ##当前在哪个目录下,如果直接执行就是显示哪个目录下的所有目录大小情况

 

 

 


 

 

 

[root@fp-web-126 ~]# df --total 

 

 

 


df -h # 按MB或GB的方式显示

df -H # 使用1000而不是1024的换算方式

[root@fp-web-126 ~]# df -H 

 

 

 

df -i # 显示inode信息

[root@fp-web-126 ~]# df -i 
 

 

 

 


df -l # 仅显示本地文件系统

df -t TYPE # 仅显示TYPE类型的文件系统
例如:

[root@fp-web-126 ~]# df -t tmpfs
 

 

df -T # 显示文件系统类型

[root@fp-web-126 ~]# df -T 

 

df -x TYPE # 显示非TYPE类型的文件系统

 

 

 

TYPE: 
'nfs' -- NFS file system
'ufs,efs,ext..'
'hsfs, cdfs' -- file system on CD-ROM drive
'pcfs' -- MS-DOS file system
'fuseblk' -- NTFS
SIZE: 
'KB' -- 1000
'K' -- 1024
'MB' -- 1000 * 1000
'M' -- 1024 * 1024
'G, T, P, E, Z, Y

 

[root@fp-web-118 /]#df -hl:查看磁盘剩余空间

 

 

 

[root@fp-web-118 /]# df -H   ##查看分区和挂载对应信息

 

[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 14G 11G 2.6G 82% /
/dev/sda1 99M 14M 81M 14% /boot
tmpfs 442M 275M 168M 63% /dev/shm
/dev/mapper/vg_test-lv_test
24M 1.3M 21M 6% /mnt/lvm


df -h 查看某目录下的可用的磁盘容量以易读的容量格式显示

 

 

 

lsblk    查看磁盘和分区信息(发现这个命令很有用,在查看磁盘数量的时候)

 

 

 
lsblk -help

Usage:
lsblk [options] [<device> ...]

Options:
-a, --all print all devices
-b, --bytes print SIZE in bytes rather than in human readable format
-d, --nodeps don't print slaves or holders
-D, --discard print discard capabilities
-e, --exclude <list> exclude devices by major number (default: RAM disks)
-I, --include <list> show only devices with specified major numbers
-f, --fs output info about filesystems
-h, --help usage information (this)
-i, --ascii use ascii characters only
-m, --perms output info about permissions
-l, --list use list format output
-n, --noheadings don't print headings
-o, --output <list> output columns
-p, --paths print complate device path
-P, --pairs use key="value" output format
-r, --raw use raw output format
-s, --inverse inverse dependencies
-t, --topology output info about topology
-S, --scsi output info about SCSI devices


 


fdisk /dev/sda   对磁盘/dev/sda进行分区操作

fdisk /dev/sda 格式化磁盘
fdisk /dev/vg2/lv2 格式化分区
mkfs.xfs 格式化成xfs分区
mkfs.ext4 格式化成ext4分区

fdisk -l  查看当前的 磁盘分区信息(主要是分区表信息)

 显示系统所有的分区或给定的分区

下面只讲fdisk -l命令的显示结果的意思。

 

 

 看到的信息有:

1、磁盘数量是2个
硬盘:/dev/sda大小是107G,每磁道512个扇区
注意,硬盘的大小 = 柱面数 * 每个柱面的大小 = 柱面数 * 磁面数 * 每磁道的扇区数 * 扇区的大小。
Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 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: 0x0006d834 ##磁盘标识符

###磁盘sda有2个分区
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux #*代表是启动分区,是则标上*号
/dev/sda2 1026048 209715199 104344576 8e Linux LVM

1)start和end标识每个分区的起始柱面号和结尾柱面号。
如分区/dev/sda1,占用的柱面为1 ~ 3201个。其Blocks数 = 3201 * 8225280 / 1024 = 25712032,(有点误差,原因暂时不详,抱歉)
2)Id 代表文件系统的Id号
3)第七列表示该分区的文件系统。如sda1为Linux
注:一块硬盘只能有四个主分区,扩展分区也是主分区,不过扩展分区可以继续分为多个逻辑分区

Disk /dev/mapper/centos-root: 102.6 GB, 102550732800 bytes, 200294400 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 /dev/mapper/centos-swap: 4294 MB, 4294967296 bytes, 8388608 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

###磁盘sdb情况
Disk /dev/sdb: 214.7 GB, 214748364800 bytes, 419430400 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 /dev/mapper/docker-253:0-268708167-pool: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes


 

mount命令
mount
mount <-o opt> <-t opt> device dir
mount -a # 加载/etc/fstab中指定的所有设备
mount -f # 模拟加载操作,但不实际加载它
mount -L # 加载卷标为Label的文件系统
mount -o auto # 在/etc/fstab中指定该选项,则自动加载
defaults # 默认选项,包括:rw, suid, dev, exec, auto等
dev/nodev # 字符或块设备
exec/noexec # 执行二进制文件
ro # 以只读模式加载
rw # 以可读写模式加载
user # 让一般用户可以加载
loop # 可以加载文件
mount -t filesystem # 指定文件系统类型。
filesystem: ext3, vfat, ntfs, iso9660, auto
利用mount命令,我们可以将在fdisk显示的磁盘挂载在某个目录下。
/etc/fstab中指定自动挂载的设备。/etc/mtab中显示当前已挂载的设备


 

mkfs
mkfs用来对某个磁盘分区建立文件系统。
如mkfs -t ext3 /dev/sda1 表示对sda1分区建立ext3文件系统。其他文件系统类型可以用man mkfs查看。
也可以用mkfs来对一个文件建立文件系统,如下命令。
$ dd if=/dev/zero of=tmp.disk bs=1024k count=10 # 建立一个10M的文件tmp.disk
$ mkfs -t ext3 tmp.disk # 将该文件格式化为ext3文件系统
$ sudo mount -o loop tmp.disk /mnt/ # 将该文件系统挂载到mnt目录下。
挂载后,就可以把这个10M的文件当作一个磁盘来用了。不过只有10M,可以建立更大的。


 

mkswap 这个命令是专门格式化swap格式的分区的



/dev/zero是linux下特有的一个0生成器

posted @ 2022-01-26 11:33  jinzi  阅读(175)  评论(0编辑  收藏  举报