一.查看分区状态
lsblk<列出系统上所有磁盘列表>
lsblk [-dfimpt] [device]
-d :仅列出磁盘本身,不会列出该磁盘的分区数据;
-f :同时列出该磁盘内的文件系统名称;
-i :使用 ASCII 的线 段输出;
-m :同时输出该设备在 /dev 下面的权限数据;
-p :列出该设备的完整文件名;
-t :列出该磁盘设备的详细数据,包括磁盘伫列机制、预读写的数据量大小等
实例演示
[[email protected] ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 120G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 119G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 3.8G 0 lvm [SWAP]
└─centos-home 253:2 0 65.2G 0 lvm /home
sdb 8:16 0 10G 0 disk
sr0 11:0 1 9.6G 0 rom
输出字段解释
NAME:设备的文件名;
MAJ:MIN:主要设备代码:次要设备代码;
RM:是否为可卸载设备,如光盘、USB 磁盘等;
SIZE:容量;
RO:是否为只读设备;
TYPE:是磁盘 (disk)、分区 (partition) 还是只读存储器 (rom) 等类型 ;
MOUTPOINT:挂载点
blkid<列出磁盘的UUID>
实例演示
[[email protected] ~]# blkid
/dev/sr0: UUID="2020-04-22-00-55-24-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sda1: UUID="7e3605fa-6edc-4aa1-a3e9-eef9153c204e" TYPE="xfs"
/dev/sda2: UUID="pWc0m4-rN73-Gfco-TzFm-V0iZ-fUJM-UjCKc3" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="52c0275b-acd1-4491-be74-4285ccaeab63" TYPE="xfs"
/dev/sdb: PTTYPE="dos"
/dev/mapper/centos-swap: UUID="2d8e0a34-26a1-4ffa-98b2-d00bf86dc18a" TYPE="swap"
/dev/mapper/centos-home: UUID="5430386c-23ec-4bcf-99c2-e3e19ea8552e" TYPE="xfs"
输出字段解释
磁盘名称:UUID 文件系统类型
parted<列出磁盘的分区表类型与分区信息>
实例演示
[[email protected] ~]# parted /dev/sda print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 129GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 129GB 128GB primary lvm
输出字段解释:
Model:磁盘的模块名称/厂商
Disk xxx/xxx:该磁盘的总容量
Sector size:磁盘的每个逻辑/物理扇区容量
Partition Table:分区表格式
Number:分区序号ID
Srart:分区开始位置
End:分区结束位置
Size:分区大小
Type:分区类型
File system:分区系统类型
二.管理分区
通过parted命令我们可以知道分区格式(Partition Table字段,如是msdos则是MBR分区,如是gpt则是GPT分区)
fdisk<MBR分区工具>
[[email protected] ~]# 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.
Command (m for help): 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 #打印系统ID清单
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 #更改分区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):
实例演示
1.创建分区
[[email protected] ~]# 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.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-20971519, default 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): 20971519
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help): l
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
1e Hidden W95 FAT1 80 Old Minix
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[[email protected] ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 120G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 119G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 3.8G 0 lvm [SWAP]
└─centos-home 253:2 0 65.2G 0 lvm /home
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 10G 0 part
sr0 11:0 1 9.6G 0 rom
2.磁盘格式化
[[email protected] ~]# mkfs.xfs -f /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=655296 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621184, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[[email protected] ~]# blkid /dev/sdb1
/dev/sdb1: UUID="3a2174bd-fd94-442c-9fc4-e04963da6f23" TYPE="xfs"
其实,mkfs不止vfs文件系统的格式化,还支持以下系统
[[email protected] ~]# mkfs
mkfs mkfs.btrfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.minix mkfs.xfs
3.挂载分区
mount [-altno] LABEL/UUID=' ' 挂载点
常用参数解释:
-a :依照配置文件/etc/fstab的数据将所有未挂载的磁盘都挂载上来 -l :单纯的输入 mount 会显示目前挂载的信息。加上 -l 可增列 Label 名称 -t :可以加上文件系统种类来指定欲挂载的类型。常见的 Linux 支持类型有:xfs, ext3, ext4, reiserfs, vfat, iso9660(光盘格式), nfs, cifs, smbfs (后三种为网络文件系统类型) -n :在默认的情况下,系统会将实际挂载的情况实时写入 /etc/mtab 中,以利其他程序的运行。 但在某些情况下(例如单人维护模式)为了避免问题会刻意不写入。此时就得要使用-n 选项。 -o :后面可以接一些挂载时额外加上的参数,比方说帐号、密码、读写权限等: async, sync: 此文件系统是否使用同步写入 (sync) 或非同步 (async) 的 内存机制,默认为 async。 atime,noatime: 是否修订文件的读取时间(atime)。为了性能,某些时刻可使用 noatime ro, rw: 挂载文件系统成为只读(ro) 或可读写(rw) auto, noauto: 允许此 filesystem 被以 mount -a 自动挂载(auto) dev, nodev: 是否允许此 filesystem 上,可创建设备文件,dev为可允许 suid, nosuid: 是否允许此 filesystem 含有 suid/sgid 的文件格式 exec, noexec: 是否允许此 filesystem 上拥有可执行 binary 文 user, nouser: 是否允许此 filesystem 让任何使用者执行 mount,一般来说, mount 仅有 root 可以进行,但下达 user 参数,则可让 一般 user 也能够对此 partition 进行 mount 。 defaults: 默认值为:rw, suid, dev, exec, auto, nouser, and async remount: 重新挂载,这在系统出错,或重新更新参数时使用
#以上命令执行为临时挂载,重启后会消失,修改/etc/fstab添加配置则为开机自动挂载
文件修改格式:[设备/UUID等] [挂载点] [文件系统] [文件系统参数] [dump] [fsck] 文件系统参数: async/sync 非同步/同步 设置磁盘是否以非同步方式运行,默认为 async(性能较佳) auto/noauto 自动/非自动 当下达 mount -a 时,此文件系统是否会被主动测试挂载,默认为 auto。 rw/ro 可读 写/只读 让该分区以可读写或者是只读的型态挂载上来 exec/noexec 可执行/不可 执行 限制在此文件系统内是否可以进行“执行”的工作 user/nouser 允许/不允许 使用者挂载 是否允许使用者使用 mount指令来挂载呢 suid/nosuid 具有/不具有 suid 权限 该文件系统是否允许 SUID 的存在 defaults 同时具有 rw, suid, dev, exec, auto, nouser, async 等参数,默认情况使用 defaults
实例演示
[[email protected] ~]# mount /dev/sdb1 /tmp/test/
[[email protected] ~]# mount
/dev/sdb1 on /tmp/test type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
[[email protected] ~]# vim /etc/fstab(验证可先umount之前挂载的系统,直接mount -a读取配置挂载)
/dev/sdb1 /tmp/test/ xfs defaults 0 0
4.卸载分区
umount [-fn] 设备文件名或挂载点
常用参数解释:
-f :强制卸载;
-l :立刻卸载文件系统;
-n :不更新 /etc/mtab 情况下卸载
实例演示
[[email protected] ~]# umount /tmp/test/
5.删除分区
[[email protected] ~]# 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.
Command (m for help): d
Selected partition 1
Partition 1 is deleted
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[[email protected] ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 120G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 119G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 3.8G 0 lvm [SWAP]
└─centos-home 253:2 0 65.2G 0 lvm /home
sdb 8:16 0 10G 0 disk
sr0 11:0 1 9.6G 0 rom
gdisk<GPT分区工具>
分区操作和fdisk一致,除了指令介绍是字符?,没有GPT分区,仅演示命令字符
[[email protected] ~]# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************
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 #打印分区ID清单
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 #更改分区ID
v verify disk
w write table to disk and exit #存储更改,退出管理界面
x extra functionality (experts only)
? print this menu
Command (? for help):
三.文件系统检验
1.xfs_repair处理xfs文件系统
xfs_repair [-fnd] 设备名称
常用参数解释:
-f :后面的设备其实是个文件而不是实体设备
-n :仅检查不修复
-d :通常用在单人维护模式下面,针对根目录进行检查与修复的动作
2.fsck.ext4处理ext4文件系统
fsck.ext4 [-pf] [-b superblock] 设备名称
常用参数解释:
-p :当文件系统在修复时,若有需要回复 y 的动作时,自动回复 y 来继续进行修复动作。
-f :强制检查
-D :针对文件系统下的目录进行最优化配置。
-b :后面接 superblock 的位置!一般来说这个选项用不到。但是如果你的 superblock 因故损毁时, 通过这个参数即可利用文件系统内备份的 superblock 来尝试救援。一般来说,superblock 备份在: 1K block 放在 8193, 2K block 放在 16384, 4K block 放在 32768
四.磁盘/文件系统参数更改mknod<修改major和minor参数>
mknod 设备文件名 [bcp] [Major] [Minor]
常用参数解释:
设备种类:
b :设置设备名称成为一个周边储存设备文件,例如磁盘等;
c :设置设备名称成为一个周边输入设备文件,例如鼠标/键盘等;
p :设置设备名称成为一个 FIFO 文件; Major :主要设备代码;
Minor :次要设备代码;
xfs_admin<修改xfs文件系统的UUID和Label name>
xfs_admin [-lu] [-L label] [-U uuid] 设备文件名
常用参数解释:
-l :列出这个设备的 label name
-u :列出这个设备的 UUID
-L :设置这个设备的 Label name
-U :设置这个设备的 UUID 新的UUID可由uuidgen产生
tune2fs<修改ext4文件系统的UUID和Label name>
tune2fs [-l] [-L Label] [-U uuid] 设备文件名
常用参数解释:
-l :将 superblock 内的数据读出来
-L :修改 LABEL name
-U :修改 UUID
Reference URL:《鸟哥的linux私房菜》