Linux 磁盘/分区/修复 命令
查看当前系统分区情况格式:lsblk -[dfimpt] [device]选项作用-d仅列出磁盘本身,不列出该磁盘的分区数据-f同时列出该磁盘内的文件系统名称-i使用ASCII的线段输出,不使用复杂的编码-m同时输出该装置在/dev下的权限-p列出完整文件名,而不是仅列出最后的名字-t列出磁盘的详细数据,包括磁盘队列机制、预读写的数据量大小等lsblk -pi 字段字段含义MAJMajor(主要d
目录
5. df(display file-system disk space usage)
1. lsblk(list block devices)
查看当前系统分区情况
格式:lsblk -[dfimpt] [device]
选项 |
作用 |
-d |
仅列出磁盘本身,不列出该磁盘的分区数据 |
-f |
同时列出该磁盘内的文件系统名称 |
-i |
使用ASCII的线段输出,不使用复杂的编码 |
-m |
同时输出该装置在/dev下的权限 |
-p |
列出完整文件名,而不是仅列出最后的名字 |
-t |
列出磁盘的详细数据,包括磁盘队列机制、预读写的数据量大小等 |
lsblk -pi 字段
字段 |
含义 |
MAJ |
Major(主要device代码) |
MIN |
Minor(次要device代码) |
RM |
是否为removable device,如USB |
RO |
是否为只读device(rom) |
TYPE |
是disk、partition还是rom设备 |
2. fdisk(fragment disk)
对MBR进行分区
fdisk <dev_name>
[abc@ubuntu ~]$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 20G 0 disk├─sda1 8:1 0 18G 0 part /├─sda2 8:2 0 1K 0 part└─sda5 8:5 0 2G 0 part [SWAP]sdb 8:16 0 2G 0 disksr0 11:0 1 1024M 0 rom[abc@ubuntu ~]$ sudo parted -lModel: VMware, VMware Virtual S (scsi)Disk /dev/sda: 21.5GBSector size (logical/physical): 512B/512BPartition Table: msdosNumber Start End Size Type File system Flags1 1049kB 19.3GB 19.3GB primary ext4 boot2 19.3GB 21.5GB 2144MB extended5 19.3GB 21.5GB 2144MB logical linux-swap(v1)Model: VMware, VMware Virtual S (scsi)Disk /dev/sdb: 2147MBSector size (logical/physical): 512B/512BPartition Table: msdosNumber Start End Size Type File system Flags1 1049kB 1075MB 1074MB primary[abc@ubuntu ~]$ sudo fdisk /dev/sdbDevice contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier 0x42cb820f.Changes will remain in memory only, until you decide to write them.After that, of course, the previous content won't be recoverable.Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)Command (m for help): mCommand actiona toggle a bootable flagb edit bsd disklabelc toggle the dos compatibility flagd delete a partition # 删除分区l list known partition typesm print this menun add a new partition # 新建分区o create a new empty DOS partition tablep print the partition tableq quit without saving changess create a new empty Sun disklabelt change a partition's system idu change display/entry unitsv verify the partition tablew write table to disk and exit # 写入磁盘x extra functionality (experts only)Command (m for help): nPartition type:p primary (0 primary, 0 extended, 4 free)e extendedSelect (default p): pPartition number (1-4, default 1):Using default value 1First sector (2048-4194303, default 2048):Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): +2GValue out of range.Last sector , +sectors or +size{K,M,G} (2048-4194303, default 4194303): +1GCommand (m for help): WThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.[abc@ubuntu ~]$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 20G 0 disk├─sda1 8:1 0 18G 0 part /├─sda2 8:2 0 1K 0 part└─sda5 8:5 0 2G 0 part [SWAP]sdb 8:16 0 2G 0 disk└─sdb1 8:17 0 1G 0 partsr0 11:0 1 1024M 0 rom
3. gdisk
对GPT分区
4. mkfs(make filesystem)
将分区格式化为指定文件系统
mkfs.filesystem [-b bsize] [-d parms] [-i parms] [-l parms] [-L lable] [-f] [-r parms] <dev_name>
选项 |
作用 |
mkfs[tab][tab] |
显示支持的文件系统 |
-t |
选择文件系统 |
mkfs.[filesystem] |
选择文件系统 |
-b |
后面接的是区块容量,范围是512B-64K。不过Linux最大为4K |
-d |
后面接的是data section(数据区)的相关参数值 |
-f |
如果设备内已经有了文件系统,则需要使用-f强制格式化 |
-i |
与inode有较相关的设置 |
-L |
后面接这个文件系统的标头名称Label name |
-r |
指定realtime section(实时运行区)的相关设置值 |
-d参数
参数
|
作用
|
agcount=num
|
设置需要几个存储群组的意思(AG),通常与CPU有关
|
agsize=数值
|
每个AG设置为多少容量的意思。通常agcount/agsize只选一个设置
|
file
|
指的是格式化的设备是个文件而不是个设备的意思(例如虚拟磁盘)
|
size=数值
|
data section的容量。你可以设置大小
|
su=数值
|
当有RAID(磁盘列阵)时,代表stripe的数值大小,与下面的sw搭配使用
|
sw=数值
|
当有RAID时,用于保存数据的 磁盘数量 (需扣除备份盘与备用盘)
|
sunit=数值
|
与su意思相同。不过单位使用的是几个sector(512B)的意思(一个stripe由多少个扇区组成)
|
swidth=数值
|
就是su*sw的数值,但是以几个sector(512B)来设置
|
-i 参数
参数 |
作用 |
size=number |
最小的是256B,最大是2K。一般使用256B就足够了 |
internal=[0/1] |
log设备是否为内置。默认1为内置,如果使用外部设备,使用下面设置 |
logdev=dev_name |
log设备为后面接的那个设备上面的意思,需设置internal=0才可以 |
size=number |
指定这块登录区的容量,通常最小得要512个区块,大约2M=以上才行 |
-r 参数
参数 |
作用 |
extsize=number |
就是那个重要的extent区块数值,一般不需设置。但有RAID时,最好设置与swidth的数值相同较佳。最小为4K,最大为1G |
5. df(disk free, display file-system disk space usage)
显示分区使用情况
df -[ahikHTm] <file>
选项 |
作用 |
-a |
列出所有filesystem,包括系统特有的/proc等文件系统 |
-k |
以KBytes的容量显示各文件系统 |
-m |
以MBytes的容量显示各文件系统 |
-h |
以GBytes、MBytes、KBytes格式显示 |
-H |
以M=1000K取代M=1024K的进位 |
-T |
显示partition的filesystem名称 |
-i |
不用磁盘容量,以inode的数量表示 |
6. du(disk usage)
查询指定目录的磁盘占用情况
du -[ahskm] <file>
选项 |
作用 |
-a |
显示所有文件与目录容量 |
-h |
以GBytes、MBytes、KBytes格式显示 |
-s |
仅显示总量 |
-S |
不显示目录下的总计 |
-k |
以KBytes的容量显示 |
-m |
以MBytes的容量显示 |
7. fsck(file-system check)
ext4文件系统的检验和修正
针对ext4,可以直接使用
选项 |
作用 |
-a
|
如果检测到错误,自动修复文件系统
|
-A
|
检查/etc/fstab文件中列出的所有文件系统
|
-C
|
给支持进度条功能的文件系统显示一个进度条(只有ext2和ext3)
|
-N
|
不进行检查,只显示哪些检查会执行
|
-r
|
出现错误时提示
|
-s
|
检查多个文件系统时,依次进行检查
|
-t
|
指定要检查的文件系统类型
|
-T
|
启动时不显示头部信息
|
-V
|
在检查时产生详细输出
|
-y
|
检测到错误时自动修复文件系统
|
fsck.ext4 -[pf] [-b superblock] device_name
选项 |
作用 |
-p |
自动回复y来进行修复 |
-f |
强制检查。当fsck未发现unclean标识,不进行细致检查,加此选项,可强制进行细致检查。 |
-D |
针对文件系统下的目录进行优化配置 |
-b |
后接superblock的位置,当superblock损毁时,可通过此选项尝试修复。 |
[abc@ubuntu ~]$ sudo dumpe2fs -h /dev/sdb1|grep "Blocks per group"dumpe2fs 1.42.9 (4-Feb-2014)Blocks per group: 32768[abc@ubuntu ~]$ sudo fsck.ext4 -b 32768 /dev/sdb1fsck from util-linux 2.20.1e2fsck 1.42.9 (4-Feb-2014)/dev/sdb1 was not cleanly unmounted, check forced.Pass 1: Checking inodes, blocks, and sizesPass 2: Checking directory structurePass 3: Checking directory connectivityPass 4: Checking reference countsPass 5: Checking group summary informationBlock bitmap differences: +(98304--98368) +(163840--163904)Fix<y>? yesFree blocks count wrong for group #0 (28585, counted=28579).Fix<y>? yesFree blocks count wrong for group #1 (32703, counted=32700).Fix<y>? yesFree blocks count wrong (249509, counted=249500).Fix<y>? yesFree inodes count wrong for group #0 (8181, counted=8171).Fix<y>? yesDirectories count wrong for group #0 (2, counted=6).Fix<y>? yesFree inodes count wrong (65525, counted=65515).Fix<y>? yes/dev/sdb1: ***** FILE SYSTEM WAS MODIFIED *****/dev/sdb1: 21/65536 files (0.0% non-contiguous), 12644/262144 blocks
8. xfs_repair
xfs 文件系统的检验和修正
xfs_repair 修复文件系统时,任务很庞大,该文件系统不能被挂载,应该卸载后再处理。
xfs_repair -[fnd] device_name
选项 |
作用 |
-f |
device_name其实不是实体device而是文件 |
n |
单纯检测并不修改文件系统的数据 |
-d |
通常在单人维护模式下,针对根目录进行检查与修复,不能随便使用 |
9. blkid(block id)
显示磁盘属性,列出其UUID等参数
10. parted
列出磁盘的分区表类型和分区类型
格式:parted <dev_name> print
11. partprobe
更新 Linux 核心分区表信息
格式:partprobe [-s]
12. tune2fs
修改 ext4 的 label name 与 UUID
tune2fs [-l] [-L Label] [-U uuid] device_name
选项 |
作用 |
-l |
显示superblock内的数据 |
-L |
修改Label名称 |
-U |
修改UUID |
13. xfs_admin
修改 xfs 文件系统的 uuid 与 label name
xfs_admin [-lu] [-L label] [-U uuid] <dev_name>
选项 |
作用 |
-l |
显示设备的label name |
-u |
显示设备的UUID |
-L |
设置设备的label |
-U |
设置设备的uuid |
14. dumpe2fs
用于打印 “ext2/ext3” 文件系统的超级块和快组信息
dumpe2fs [options] <device_name>
选项 |
作用 |
-b |
打印文件系统中预留的块信息 |
-ob<超级块> |
指定检查文件系统时使用的超级块 |
-OB<块大小> |
检查文件系统时使用的指定的块大小 |
-h |
仅显示超级块信息 |
-i |
从指定的文件系统映像文件中读取文件系统信息 |
-x |
以16进制格式打印信息块成员 |
[abc@ubuntu ~]$ sudo dumpe2fs -h /dev/sdb1[sudo] password for abc:dumpe2fs 1.42.9 (4-Feb-2014)Filesystem volume name: <none>Last mounted on: /tmpFilesystem UUID: 07c1bdab-d8ea-4a3c-b2d6-8310675ab9bcFilesystem magic number: 0xEF53Filesystem revision #: 1 (dynamic)Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isizeFilesystem flags: signed_directory_hashDefault mount options: user_xattr aclFilesystem state: cleanErrors behavior: ContinueFilesystem OS type: LinuxInode count: 65536Block count: 262144Reserved block count: 13107Free blocks: 249500Free inodes: 65515First block: 0Block size: 4096Fragment size: 4096Reserved GDT blocks: 63Blocks per group: 32768Fragments per group: 32768Inodes per group: 8192Inode blocks per group: 512Flex block group size: 16Filesystem created: Thu Nov 26 02:57:37 2020Last mount time: Thu Nov 26 03:16:53 2020Last write time: Thu Nov 26 03:18:37 2020Mount count: 1Maximum mount count: -1Last checked: Thu Nov 26 02:57:37 2020Check interval: 0 (<none>)Lifetime writes: 49 MBReserved blocks uid: 0 (user root)Reserved blocks gid: 0 (group root)First inode: 11Inode size: 256Required extra isize: 28Desired extra isize: 28Journal inode: 8Default directory hash: half_md4Directory Hash Seed: ccfe301b-1efb-4ad7-bf3d-b49bf87f92daJournal backup: inode blocksJournal features: journal_incompat_revokeJournal size: 32MJournal length: 8192Journal sequence: 0x00000008Journal start: 0
更多推荐
所有评论(0)