Linux磁盘管理及维护

磁盘管理及维护

1.1 磁盘的物理组成

圆形的磁盘盘
机械手臂,机械手臂上的磁头
主轴马达:可以转动磁盘盘,让机械手臂的磁头在磁盘盘上读写数据

磁盘主要存储数据的是磁盘盘,组成如下:
(1)扇区是最小的物理存储单位,有512bytes和4k两种格式
(2)将扇区组成一个圆是磁柱
(3)最小分区单位通常为扇区
(4)磁盘分区表主要有两种格式,一种是限制较多的MBR分区,一种是GPT格式
(5)MBR分区中,第一个扇区最重要,主要存放开机区的MBR和分区表
(6)GPT分区表除了分区数量扩充较多之外,支持的磁盘容量超过2TB

1.2 磁盘的文件名

/dev/sd [a-p] [1-128]:实体磁盘的文件名
/dev/vd [a-d] [1-128]:虚拟磁盘的文件名
/dev/md [1-128]:软件磁盘的文件名

1.3 磁盘分区核心命令

(1)分区命令:fdisk [fdisk /dev/sd*]
[root@localhost ~]# fdisk -l #查看系统的分区详细信息
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00061ec9

Device Boot Start End Blocks Id System
/dev/sda1 * 1 39 307200 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 39 1344 10485760 83 Linux
/dev/sda3 1344 1997 5242880 83 Linux
/dev/sda4 1997 2611 4934656 5 Extended
/dev/sda5 1997 2258 2097152 82 Linux swap / Solaris
/dev/sda6 2258 2519 2097772 82 Linux swap / Solaris
#这个磁盘的大小是21.5GB,有255个磁面,63个扇区,2610磁柱,每个磁柱的容量是8225280 bytes

(2)fdisk对磁盘进行分区:
[root@localhost ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to
switch off the mode (command ‘c’) and change display units to
sectors (command ‘u’).

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 #删除一个分区
l list known partition types #列出分区类型
m print this menu 输出帮助信息
n add a new partition #建立一个新的分区
o create a new empty DOS partition table #创建一个新的空白DOS分区表
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): n
First cylinder (2258-2611, default 2258):
Using default value 2258
Last cylinder, +cylinders or +size{K,M,G} (2258-2611, default 2611): +100M

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

[root@localhost ~]# mkfs.ext4 /dev/sda6 #需要先进行格式化,才能使用
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
26520 inodes, 105712 blocks
5285 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
13 block groups
8192 blocks per group, 8192 fragments per group
2040 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 29 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]# mount /dev/sda6 /mnt/ #进行挂载使用
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 9.8G 1.4G 7.9G 16% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 283M 31M 238M 12% /boot
/dev/sda3 4.8G 11M 4.6G 1% /home
/dev/sda6 96M 1.6M 90M 2% /mnt

格式化:
mkfs.ext4 /dev/sda*
mkfs.xfs /dev/sda*

1.4 文件系统管理类命令

(1)mkfs
ext2,ext3,ext4,
xfs
btrfs
mkfs.ext2 分区
-t:指定创建的文件系统类型
mkfs -t etx4 =mkfs.ext4
-b:创建文件系统指明块大小
1024 2048 4096
-L label :指明卷标
-j:创建有日志功能的文件系统
-i:指明inode与字节的比率
-N:直接指定创建的文件系统的inode数量
-m:指定预留空间

(2)e2label: 设定与查看卷标
设定 e2label device label
查看 e2label device

(3)fsck.ext2
-c:显示检查的进度

(4)dumpe2fs :修改ext系列文件系统的属性信息

(5)tune2fs :查看或修改文件系统属性(ext系列)
tune2fs [OPTIONS] device
-l:查看块内容
-j:修改指定的文件系统类型
-L 修改卷标
-m:调整预留空间百分比

(6)resize2fs [选项] device [size] :调整 ext系列的文件系统的大小
选项:
-f:强制执行
-M:将文件系统缩小到最小值
-P:显示文件系统的最小值

(7)e2fsck:磁盘修复,修复前需要卸载挂载点
选项:
-a:检查分区:发现问题可以直接修复
-b:设定superblock位置
-B size 设定区块大小
-c:检查是否有坏道
-f:强制检查
-v:显示详细报告

(8)blkid:获取文件系统类型,UUID,卷标
blkid device
blkid -L LABEL:根据LABEL定位设备
blkid -U UUID:根据UUID定位设备

1.5 交换分区

Swap,即交换区。Swap空间的作用可简单描述为:当系统单物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够用时,才进行Swap交换。

#查看当前的交换分区
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 980 162 818 0 6 38
-/+ buffers/cache: 117 863
Swap: 2559 0 2559
[root@localhost ~]# swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 2097148 0 -1
/swap file 524284 0 -2

#准备分区
[root@localhost ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to
switch off the mode (command ‘c’) and change display units to
sectors (command ‘u’).

Command (m for help): l

0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx
5 Extended 42 SFS 86 NTFS volume set da Non-FS data
6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility
8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt
9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access
a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT
f W95 Ext’d (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor
14 Hidden FAT16 < 3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT
1e Hidden W95 FAT1

Command (m for help): t #转换分区
Partition number (1-6): 6
Hex code (type L to list codes): 82 #Swap分区号82
Changed system type of partition 6 to 82 (Linux swap / Solaris)

Command (m for help): w #保存更改
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@localhost ~]# partprobe /dev/sda6
[root@localhost ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00061ec9

Device Boot Start End Blocks Id System
/dev/sda1 * 1 39 307200 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 39 1344 10485760 83 Linux
/dev/sda3 1344 1997 5242880 83 Linux
/dev/sda4 1997 2611 4934656 5 Extended
/dev/sda5 1997 2258 2097152 82 Linux swap / Solaris
/dev/sda6 2258 2271 105712 82 Linux swap / Solaris

[root@localhost ~]# mkswap /dev/sda6
/dev/sda6: Device or resource busy
[root@localhost ~]# umount /mnt
[root@localhost ~]# mkswap /dev/sda6 #初始化
Setting up swapspace version 1, size = 105708 KiB
no label, UUID=9bfcd644-4e8a-4b9b-9a51-872ca0f665b1

[root@localhost ~]# blkid /dev/sda6 #挂载
/dev/sda6: UUID=“9bfcd644-4e8a-4b9b-9a51-872ca0f665b1” TYPE=“swap”
[root@localhost ~]# vim /etc/fstab
写入如下图最后一行的信息:
在这里插入图片描述[root@localhost ~]# swapon -a #读取/etc/fstab
[root@localhost ~]# swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 2097148 0 -1
/swap file 524284 0 -2
/dev/sda6 partition 105708 0 -3

【fdisk device
t 82

mkswap 格式化
dd if=/dev/zero of=/dir/filename bs=1[K,M,G] count=N

/etc/fstab
UUID=“4a3d5ab7-4e3e-4baa-a3a3-f0386901a12f” swap swap defaults 0 0

swapon -a 根据文件挂载swap分区
swapoff device】

1.6 磁盘挂载等相关核心工具

根文件系统之外的其他文件系统要想能够被访问,都必须通过"关联"至根文件系统上的某个目录来实现,此关联操作即为"挂载";此目录即为挂载点。
挂载点作为另一个文件系统的访问入口应满足以下条件:
(1)事先存在
(2)应该使用未被或不会被其他进程使用到的目录
(3)挂载点下原有的文件将会被隐藏

  • mount
    mount -t 系统类型 -o 选项 设备 挂载点
    常见挂载选项:
    rw:读写
    ro:只读
    acl:支持acl功能

本地设备文件:
/dev/cdrom:光盘设备
/dev/sr0:光盘设备
/dev/sda5:基本分区
/dev/vg01/lv01:逻辑卷
/dev/mdo:软RAID设备

  • umount
    umount 设备
    umount 挂载点

  • 查看哪些进程占用挂载点
    lsof 挂载点
    fuser -v 挂载点
    终止挂载点使用
    fuser -km 挂载点

lsof:列出所有被打开的文件,进程
lsof -c process 显示进程打开的文件
lsof -p 1234 进程号:列出进程1234打开的文件
lsof -i 显示符合条件的进程
lsof -u 用户名
lsof -s
lsof -i tcp/udp
lsof -i :8080

df 显示磁盘分区上可使用空间
-h 以KB,MB,GB 单位显示 1024为单位
-H 以1000为单位 而不是1024
-i:显示Inode使用情况

du 显示文件大小
-h:以 K,M,G等为单位显示
-c:显示目录中文件大小,并且显示总和
-s:仅显示目录的总值,单位KB
-k:显示目录中文件的大小,单位KB
-m:显示目录中文件的大小,单位MB

  • 挂载配置文件
    /etc/fstab
    磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机时仍然需要重新挂载。系统开机时会自动读取这个文件中的内容,根据文件里面的配置挂载磁盘。

第一列:device 设备文件
UUID
设备文件
卷标 label

第二列:挂载点

第三列:filesystem: xfs ext4 swap iso9660

第四列:文件系统参数 defaults

第五列:能否被dump备份命令作用
0 不备份
1 每天备份
2 不定期备份

第六列:是否校验扇区
0 不校验
1 最先校验
2 在1之后校验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值