命令
块设备,最常见的是硬盘,除此之外还有软盘驱动器、光盘驱动器、闪存等。
blkid
列出块设备的路径、UUID、类型等信息。对于一个系统来说,设备的 UUID 永远不会变,但是名称、设备路径(/dev/sda1)等可能发生改变。
> blkid
/dev/sda1: SEC_TYPE="msdos" UUID="D667-D9A6" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="9956c66c-2690-4ef3-b9f9-7728ef5ed16e"
/dev/sda2: UUID="9e806728-17ec-4496-8daf-17683d3ce6e5" TYPE="xfs" PARTUUID="90efaf5b-8860-4c6a-90f2-33091bd07a8c"
/dev/sda3: UUID="UGnwzW-N6UW-EPGp-OIu1-hzc3-gprc-T6cKPp" TYPE="LVM2_member" PARTUUID="6f9f528d-60b4-4bc1-b6ff-98d4356b41ca"
/dev/sdb1: LABEL="storage1" UUID="4f0b385a-ae8b-4d12-859b-b999c1c7fd05" TYPE="ext4"
/dev/mapper/centos-root: UUID="61ccbaf4-3cae-45db-ac33-9554da96bb04" TYPE="xfs"
/dev/mapper/centos-swap: UUID="0bbdac00-7399-48c0-9504-9eba80971d07" TYPE="swap"
lsblk
用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系。
> lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 477G 0 disk
├─sda1 8:1 0 200M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 475.8G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 4G 0 lvm [SWAP]
└─centos-home 253:2 0 421.8G 0 lvm /home
sdb 8:16 0 1.8T 0 disk
└─sdb1 8:17 0 1.8T 0 part /storage1
sdc 8:32 0 1.8T 0 disk
└─sdc1 8:33 0 1.8T 0 part /storage2
- MAJ:MIN:显示主要和次要设备号。
- RM:显示设备是否可移动设备。RM值等于
1
,这说明他们是可移动设备。 - RO:设备是否为只读。
1
表示该设备只读。 - TYPE:
disk
表示是磁盘;part
: 表示是分区;rom
:表示只读存储,而sr0是只读存储(rom)
fdisk
fdisk 除了可以查看当前磁盘列表,有哪些分区外。它的核心功能是通过命令行操作磁盘分区(创建、删除、合并等)。
fdisk -l
这个命令将会列出磁盘名称、分区数量、分区表类型、磁盘识别代号、分区 ID 和分区类型。
> sudo fdisk -l
Disk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 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
Disklabel type: dos
Disk identifier: 0xeab59449
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 20973568 62914559 41940992 20G 83 Linux
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 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/sdc: 10 GiB, 10737418240 bytes, 20971520 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/sdd: 10 GiB, 10737418240 bytes, 20971520 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/sde: 10 GiB, 10737418240 bytes, 20971520 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
编辑磁盘分区
这是危险操作。一般是通过图形化界面完成(gnome 自带磁盘工具)。想学习如何通过 fdisk 操作磁盘,请自行搜索。
lsusb
显示本机的 USB 设备信息
> lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 003: ID 046d:c092 Logitech, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002
表示第 2 个 USB 主控制器。
Device 001
系统给该设备分配的设备号,001
表示这个设备是当前 USB 控制器下的第 1 个设备。
ID 0bda:0129
设备唯一 ID,硬件厂商决定。
最后一列
设备名称、厂商名称等信息。
fstab
fstab 是 file system table 的意思,即文件系统表。它在开机的时候告诉系统挂载哪些分区、挂载点是什么、以什么格式挂载、挂载的选项等等。
然后系统在开机的时候就根据 fstab 内容,执行挂载操作。在挂载完之后,就可以在文件系统上进行操作。将需要挂载的分区放入fstab之后,就不需要手动挂载。
fstab 是被 mount
命令解析,然后根据解析内容执行操作。
fstab 文件一行表示一个挂载操作,包含 6 列信息:<file system>
、<mount pt>
、<type>
、<options>
、<dump>
、<pass>
。
# <file system> <mount pt> <type> <options> <dump> <pass>
/dev/root / ext2 rw,noauto 0 1
proc /proc proc defaults 0 0
UUID=D667-D9A6 /boot/efi vfat umask=0077,shortname=winnt 0 0
<file system>
:表示磁盘文件、设备的 Label 或者 UUID。可以通过 blkid
查看。
<mount pt>
:是设备挂载点,就是设备要挂载到哪个目录下。
<type>
:待挂载的文件系统格式。
<options>
:挂载时的选项(下面的列表不全,仅展示常用参数)。
options | 含义 |
---|---|
async/sync | 设置是否为同步方式运行,默认为 async |
auto/noauto | 此文件系统是否被主动挂载。默认为 auto |
rw/ro | 是否以以只读或者读写模式挂载 |
exec/noexec | 限制此文件系统内是否能够进行”执行”的操作 |
user/nouser | 是否允许用户使用 mount 命令挂载。nouser 表示只有 root 用户能挂载 |
suid/nosuid | 是否允许 SUID 的存在 |
defaults | 使用文件系统的默认挂载参数,例如 ext4 的默认参数为: rw, suid, dev, exec, auto, nouser, async |
<dump>
:是否被dump命令使用。0
代表不要做 dump 备份;1
代表要每天进行 dump 的操作;2
代表不定日期的进行 dump 操作
<pass>
:标识是否检验扇区。在开机过程中,系统默认会以 fsck 检查系统是否完整。0
不要检验;1
最早检验(一般根目录会选择);2
1级别检验完成之后进行检验