欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux磁盘系统——管理磁盘的命令

程序员文章站 2022-06-03 19:08:21
本文主要学习了Linux系统中管理磁盘的命令,包括查看磁盘使用情况、磁盘挂载相关、磁盘分区相关、磁盘格式化等操作。 ......

linux磁盘系统——管理磁盘的命令

摘要:本文主要学习了linux系统中管理磁盘的命令,包括查看磁盘使用情况、磁盘挂载相关、磁盘分区相关、磁盘格式化等操作。

df命令

df命令用于显示linux系统中各文件系统的硬盘使用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等。

/dev/shm为内存挂载点,如果你想把文件放到内存里,就可以放到/dev/shm/目录下。

基本语法

1 [root@localhost ~]# df [选项] 目录或文件

选项说明

1 -a:显示所有文件系统信息,包括系统特有的/proc、/sysfs等文件系统。
2 -k:以kb为单位显示容量,默认。
3 -m:以mb为单位显示容量。
4 -h:使用人们习惯的kb、mb或gb等单位自行显示容量。
5 -h:以m=1000k取代m=1024k的进位方式显示容量。
6 -t:显示该分区的文件系统名称(例如xfs)。
7 -i:不用硬盘容量显示,而是以含有inode的数量来显示。

使用举例

 1 [root@localhost /]# df -hit
 2 文件系统                类型     inode 已用(i) 可用(i) 已用(i)% 挂载点
 3 /dev/mapper/centos-root xfs        17m     28k     17m       1% /
 4 devtmpfs                devtmpfs  120k     386    120k       1% /dev
 5 tmpfs                   tmpfs     123k       1    123k       1% /dev/shm
 6 tmpfs                   tmpfs     123k     472    122k       1% /run
 7 tmpfs                   tmpfs     123k      13    123k       1% /sys/fs/cgroup
 8 /dev/sda2               xfs       700k     329    700k       1% /boot
 9 tmpfs                   tmpfs     123k       1    123k       1% /run/user/0
10 [root@localhost /]# 

du命令

du命令是统计目录或文件所占磁盘空间大小的命令。

基本语法

1 [root@localhost ~]# du [选项] 目录或文件

选项说明

1 -a:显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量。
2 -h:使用习惯单位显示磁盘占用量,如kb、mb或gb等。
3 -s:统计总磁盘占用量,而不列出子目录和子文件的磁盘占用量。

使用举例

1 [root@localhost ~]# du -sh /
2 du: 无法访问"/proc/3628/task/3628/fd/4": 没有那个文件或目录
3 du: 无法访问"/proc/3628/task/3628/fdinfo/4": 没有那个文件或目录
4 du: 无法访问"/proc/3628/fd/4": 没有那个文件或目录
5 du: 无法访问"/proc/3628/fdinfo/4": 没有那个文件或目录
6 1.1g    /
7 [root@localhost ~]# 

mount命令

mount挂载命令是用来将硬件设备的文件系统和linux系统中的文件系统,通过指定目录(作为挂载点)进行关联。

基本语法

显示已挂载设备:

1 [root@localhost ~]# mount [选项]

挂载设备:

1 [root@localhost ~]# mount [选项] 设备文件名 挂载点

选项说明

 1 -a:显示出系统中已挂载的设备信息。
 2 -l:额外显示出卷标名称。
 3 -t 系统类型:指定欲挂载的文件系统类型。linux常见的支持类型有xfs、ext2、ext3、ext4、iso9660、fat、vfat等。如果不指定具体类型,挂载时linux会自动检测。
 4 -l 卷标名:除了使用设备文件名之外,还可以利用文件系统的卷标名称进行挂载。
 5 -n:在默认情况下,系统会将实际挂载的情况实时写入/etc/mtab文件中,但在某些场景下(例如单人维护模式),为了避免出现问题,会刻意不写入,此时就需要使用这个选项。
 6 -o 特殊选项:可以指定挂载的额外选项,比如读写权限、同步/异步等,如果不指定,则使用默认值(defaults)。具体的特殊选项:
 7     rw/ro:是否对挂载的文件系统拥有读写权限,rw为默认值,表示拥有读写权限。ro表示只读权限。
 8     async/sync:此文件系统是否使用同步写入(sync)或异步(async)的内存机制,默认为异步async。
 9     dev/nodev:是否允许从该文件系统的block文件中提取数据,为了保证数据安装,默认是nodev。
10     auto/noauto:是否允许此文件系统被以mount -a的方式进行自动挂载,默认是auto。
11     suid/nosuid:设定文件系统是否拥有setuid和setgid权限,默认是拥有。
12     exec/noexec:设定在文件系统中是否允许执行可执行文件,默认是允许。
13     user/nouser:设定此文件系统是否允许让普通用户使用mount执行实现挂载,默认是不允许(nouser),仅有root可以。
14     defaults:定义默认值,相当于rw、suid、dev、exec、auto、nouser、async这7个选项。
15     remount:重新挂载已挂载的文件系统,一般用于指定修改特殊权限。

umount命令

umount命令用于卸载已经挂载的硬件设备。

基本语法

1 [root@localhost ~]# umount 设备文件名或挂载点

lsblk命令

lsblk命令用来列出所有可用块设备的信息,但是,它不会列出ram盘的信息。

基本语法

1 [root@localhost ~]# lsblk [选项] 设备名称

选项说明

1 -d:仅列出磁盘本身,并不会列出该磁盘的分区信息。
2 -f:同时列出该磁盘内的文件系统名称。
3 -i:使用ascii的字符输出,不要使用使用复杂的编码(在某些环境下有用)。
4 -m:同时输出该设备在/dev下面的权限信息(rwx的数据)。
5 -p:列出该设备的完整文件名(因为不加这个选项,显示的是最后的名字)。
6 -t:列出该磁盘设备的详细数据,包括磁盘列阵机制、预读写的数据量大小等。

使用举例

 1 [root@localhost ~]# lsblk
 2 name            maj:min rm  size ro type mountpoint
 3 sda               8:0    0   20g  0 disk 
 4 ├─sda1            8:1    0    2m  0 part 
 5 ├─sda2            8:2    0  700m  0 part /boot
 6 └─sda3            8:3    0   19g  0 part 
 7   ├─centos-root 253:0    0   17g  0 lvm  /
 8   └─centos-swap 253:1    0    2g  0 lvm  [swap]
 9 sr0              11:0    1    4g  0 rom  
10 [root@localhost ~]# 

结果说明

1 name:这是块设备名。
2 maj:min:显示主要和次要设备号。
3 rm:显示设备是否可移动设备。rm值为0说明是不可移动设备,rm值等于1说明是可移动设备。
4 size:列出设备的容量大小信息。
5 ro:该项表明设备是否为只读。ro值为0说明不是只读,ro值为1说明是只读。
6 type:显示块设备是否是磁盘或磁盘上的一个分区。在本例中,sda和sdb是磁盘,而sr0是只读存储(rom)。
7 mountpoint:指出设备挂载的挂载点。

blkid命令

blkid命令可以列出文件系统名称与设备的uuid等数据。

uuid是全局唯一标识符(universally unique identifier)。linux会将系统内所有的设备给予一个独一无二的标识符,可以拿来作为挂载或是使用这个设备或文件系统。

基本语法

1 [root@localhost ~]# blkid 设备文件名

使用举例

1 [root@localhost ~]# blkid
2 /dev/sr0: uuid="2015-12-09-23-14-10-00" label="centos 7 x86_64" type="iso9660" pttype="dos" 
3 /dev/sda2: uuid="8ea9a0fe-8856-4c0e-9d8e-4d676aefb33e" type="xfs" 
4 /dev/sda3: uuid="yaseyq-jfrf-pmzp-eoek-fkxu-ouus-y46op2" type="lvm2_member" 
5 /dev/mapper/centos-root: uuid="eee2ef01-d9fd-4357-9c82-4578ad4d4060" type="xfs" 
6 /dev/mapper/centos-swap: uuid="aa4242d0-542f-4512-b475-a91b1bc6c354" type="swap" 
7 [root@localhost ~]#

parted命令

parted命令可用于查看磁盘的分区状态,还可以用于磁盘的分区/删除,以及磁盘分区表的类型转换(可以实现,但是不建议做,十分危险)。

基本语法

1 parted 设备文件名 [选项]

选项说明

1 print:打印磁盘分区信息。
2 mkpart [primary|logical|extended] [ext4|vfat|xfs] 分区开始内存处 分区结束内存处:新增分区。
3 rm 分区号码:删除分区。
4 mklabel 分区表格式:磁盘分区表的类型转换,常用的有msdos和gpt分区表格式,msdos不支持2tb以上容量的磁盘,所以大于2tb的磁盘选gpt分区表格式。

使用举例

 1 [root@localhost ~]# parted /dev/sda print
 2 model: vmware, vmware virtual s (scsi)
 3 disk /dev/sda: 21.5gb
 4 sector size (logical/physical): 512b/512b
 5 partition table: msdos
 6 disk flags: 
 7 
 8 number  start   end     size    type     file system  标志
 9  1      1049kb  3146kb  2097kb  primary
10  2      3146kb  737mb   734mb   primary  xfs          启动
11  3      737mb   21.1gb  20.4gb  primary               lvm
12 
13 [root@localhost ~]# 

结果说明

1 model:磁盘的模板名称(厂商)。
2 disk:磁盘的总容量。
3 sector size:磁盘的每个逻辑/物理扇区的大小。
4 partition table:分区表的格式(mbr/gpt)。
5 最后一排:分区的数据。

partprobe命令

partprobe命令可以使kernel重新读取分区表。

基本语法

1 [root@localhost ~]# partprobe [选项]

选项说明

1 -s:显示摘要和分区信息。

fdisk命令

fdisk命令用于mbr分区表格式磁盘的分区或查询。

基本语法

1 [root@localhost ~]# fdisk 设备文件名

gdisk命令

gdisk命令用于gpt分区表格式磁盘的分区或查询。

基本语法

1 [root@localhost ~]# gdisk 设备文件名

mkfs命令

mkfs命令可以对硬盘分区进行格式化。

基本语法

1 [root@localhost ~]# mkfs [选项] 分区设备文件名

选项说明

1 -t 文件系统格式:用于指定格式化的文件系统,如ext3、ext4、xfs等。

mke2fs命令

mke2fs命令可以在为硬盘分区写入文件系统时,手动调整分区的默认参数。

基本语法

1 [root@localhost ~]# mke2fs [选项] 分区设备文件名

选项说明

1 -t 文件系统:指定格式化成哪个文件系统。
2 -b 字节:指定block的大小。
3 -i 字节:指定字节inode的比例,也就是多少字节分配一个inode。
4 -l 卷标名:给文件系统设置卷标名。
5 -j:建立带有ext3日志功能的文件系统。