linux磁盘管理
硬盘一般分为两种:
(1)机械式硬盘
主要组成部分:
track:磁道
sector:扇区
cylinder:分区的基本单位
MBR:硬盘首扇区,
大小:512bytes
其中:446:bootloader
64: 文件分配表(其中16为一个分区)
2:最后2个字节55AA
(2)固态硬盘SSD
磁盘接口类型:
主要分为:
IDE :133MB/S
SCSI:640MB/s
SATA:6Gbps(目前最常用的)
SAS:6Gbps
USB:480MB/S
识别磁盘的设备:
linux中的路径:/dev/sd
/dev/sd[a-z][1-]
其中【a-z】代表不同的磁盘【1-】代表不同的分区(正常情况下主分区或扩展分区共4个,其他为逻辑分区)
设备文件:特殊文件
设备号: major主设备号,主要区别设备类型
minor辅设备号,主要是去呗同一类别设备下的不同设备
设备文件中:block代表块设备,随机设备 character代表字符设备 线性设备
磁盘分区:
意思是指将硬盘上的空间分割为多个小的空间,每个空间可以独立使用文件系统
分区工具:
fdisk(最常用) parted sfdisk
fdisk的使用:(正常情况下在一块硬盘上最多支持分区15个)
分区常用的子命令:
p:显示
n:创建
d:删除
t:修改分区ID
l:列出所有支持的分区ID
例:
其中分区完成后,查看内核是否读取方法:
cat /proc/partitions
如果没有读取,下列命令可以让内核立刻读取该分区
(1)partx命令:
用法:
partx DEVICE
partx -a DEVICE
(2) kpartx命令:
kpartx -af DEVICE
linux文件系统管理(VFS虚拟文件系统):
文件系统主要类型有:
(1)linux:ext2,ext3,ext4,reiserfs, xfs, btrfs, swap
(2)光盘:iso9660
(3)Windows: fat32(vfat), ntfs
(4)Unix: ffs, ufs, jfs, jfs2
(5)网络文件系统:nfs, cifs
(6)集群文件系统:ocfs2, gfs2
(7)分布式文件系统:ceph,
其中linux文件系统还可以分为:
(1)日志型文件系统(最常用的)
日志区
ext3
(2)非日志性文件系统
ext2
(3)内存交换文件系统
SWAP
创建文件系统:
创建文件系统就等同于在分区上执行高级格式化
条件:
(1)内核中支持此种文件系统
(2)用户空间由系统管理工具
创建工具:
mkfs 命令
mkfs -t type DEVICE 或者 mkfs.type DEVICE
文件系统查看:
blkid 命令
linux系统管理:
(1)创建文件系统(ext系列):
格式: mke2fs [OPTIONS] .....DEVICE
[OPTIONS]选项 :
-t {ext2|ext3|ext4} 指明类型
-b {1024|2048|4096} 创建时指明块大小
-L:‘卷标’指明卷标
(e2lable DEVICE [LABEL]修改卷标的命令)
-j:等同于mke2fs -t ext3
-i#:指明每个INODE中字节数
-N#:指定indode数量
-m#:指明预留多大的空间给后期管理使用
-O FEATURE[...]:开启某个特性,相应的^即时关闭某个特性
(2)文件系统属性查看及修改工具
tune2fs:显示ext系列文件系统的属性,或者调整期属性
选项:
-l:显示超级块的信息,显示整个文件系统的属性及布局等相关信息
-L: 修改卷标
-m #: 调整预留给管理员的管理空间百分比;
-j: ext2 --> ext3
-O:文件系统属性的启动或关闭
-o:文件系统默认挂载选项的启用或关闭
(dumpe2fs:-h: 显示超级块信息)
(3)文件系统检测
fsck :
fsck -t type 或者 fsck .type (type不能写错)
-a:自动修复错误
-r:交互式修复错误
-f:强制修复错误
e2fsck:ext系列文件系统专用的检测修复工具;
-y: 自动回答为“yes”
-f:force 强制修复
文件系统的挂载和使用:
linux文件系统的启动,是由kernel关联根分区来实现的,根文件系统下面主要包含: bin,sbin,etc,lib,lib64,dev,tmp,proc,sys文件
挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录作为其他文件系统访问入库
相反,解除此关联关系即卸载
挂载点:mount_point ,将需要挂载的设备挂载至挂载点(挂载点在挂载之后,其原有的文件将会被隐藏,最好 使用空目录作为挂载点)
查看挂载:
(1)mount:通过读取/etc/mtab 文件显示当前系统所挂载的设备
(2) mount -a :挂载/etc/fstab 文件中所有支持自动挂载的的文件系统
挂载命令:
mount [options](命令选项)[-o options](挂载选项) DEVICE(设备) MOUNT_POINT(挂载点)
[options](命令选项)
-t type :指明文件类型
-r: 以“只读”方式挂载此文件系统
-w: 以“读写”方式挂载此文件系统
-n:每个文件系统挂载后都会自动更新至/etc/mtab文件中,-n禁止此功能
(此时如果查看的话cat /proc/mounts)
-B:绑定一个目录至另一个目录上面
-a:自动挂载所有支持自动挂载的设备
[-o options](挂载选项)
-async/sync:异步模式和同步模式(文件系统存取数据的时候模式)
atime/noatime:是否更新访问时间戳;
diratime/nodiratime:是否更新目录的访问时间戳;
auto/noauto: 是否允许此设备被自动挂载;
exec/noexec:是否允许执行此文件系统上应用程序;
dev/nodev:是否支持在此设备上使用设备文件;
remount:重新挂载
user/nouser: 是否允许普通挂载此设备
acl:是否支持此设备上使用facl;
默认挂载模式(defaults):rw, suid, dev, exec, auto, nouser, and async
DEVICE:需要挂载的设备
(1)设备文件
(2)卷标
(3)UUID
(4)伪文件系统名称
卸载命令:
umount,使用方法:umount DEVICE或者umount MOUNT_POINT
注:如果该设备上有进程正在使用,卸载无法进行,需要先终止进程然后再继续进行卸载
查看正在当前正在进行的进程:fuser -v MOUNT_POINT
终止所有改挂载点上的进程:fuser -km MOUNT_POINT
文件系统的相关挂载文件:
挂载文件在系统的/etc/fstab文件中
第一位:要挂载的设备:设备文件、LABEL=、UUID=、伪文件系统名称
第二位:挂载点
第三位:文件类型
第四位:挂载选项:默认defaults
第五位:转储频率(通常情况下为0)
0: 不转储
1: 每天转储
2: 每隔一天转储
第六位:自检频次(通常情况下为0)
0:不自检
1:首先自检,通常只有根文件才为1
...
交换分区:
(2)创建交换分区mkswap
mkswap [option] DEVICE
(3)启动交换分区swapon
swapon [option] [DEVICE]
-a: 激活所有交换分区
-p PRIORITY: 设定其优先级;
(4)禁用交换分区swapoff
swapoff [option] [DEVICE]
文件系统等空间占用空间看工具:
df:当前文件系统最大可用空间及使用情形
-h:可识别
-i: inode数量
-P: 以Posix兼容的格式输出
du:查询文件和目录的磁盘使用情况
-h:可识别
-s: summary
文件系统上面的链接文件:
链接文件主要分为两类:硬链接和符号链接
硬链接的特点:
(1)两个路径指向同一个inode
(2)不能对目录进行,不能跨分区进行
(3)指向同一个inode的多个不同路径,创建文件的硬链接会增加inode的引用计数。删除硬链接仅是删除其一个访问路径,只到最后一个路径被删除
符号链接的特性:
(1)链接文件的数据指向另一个文件路径
(2)可以对目录进行,可以跨分区
(3)指向的是另一个文件路径,而非inode 对文件创建符号链接不会增加其引用计数;删除原文件,符号链接文件也将无法;
创建符号链接的命令:
ln -s SRC DEST
联系 创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至/mydata目录
[root@localhost ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb
[root@localhost ~]# fdisk /dev/sdb
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
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition‘s system 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): p
Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 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: 0x59e52da3
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-13054, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054): +10G
Command (m for help): p
Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 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: 0x59e52da3
Device Boot Start End Blocks Id System
/dev/sdb1 1 1306 10490413+ 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# cat /proc/partitions
major minor #blocks name
8 0 125829120 sda
8 1 512000 sda1
8 2 125316096 sda2
8 16 104857600 sdb
8 17 10490413 sdb1
253 0 52428800 dm-0
253 1 983040 dm-1
253 2 71901184 dm-2
[root@localhost ~]# partx -a /dev/sdb
BLKPG: Device or resource busy
error adding partition 1
[root@localhost ~]# partx -a /dev/sdb1
last arg is not the whole disk
call: partx -opts device wholedisk
[root@localhost ~]# partx -a /dev/sdb1
last arg is not the whole disk
call: partx -opts device wholedisk
[root@localhost ~]# partx -a /dev/sdb1
last arg is not the whole disk
call: partx -opts device wholedisk
[root@localhost ~]# fdisk /dev/sdb
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): p
Disk /dev/sdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 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: 0x59e52da3
Device Boot Start End Blocks Id System
/dev/sdb1 1 1306 10490413+ 83 Linux
Command (m for help): q
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="wu" UUID="271ffe46-f897-4c02-9559-813f0c3a5446" SEC_TYPE="ext2" TYPE="ext3"
[root@localhost ~]# mke2fs -t ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655776 inodes, 2622603 blocks
131130 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2688548864
81 block groups
32768 blocks per group, 32768 fragments per group
8096 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="7ac5a57f-8f32-45d5-b362-1f51204a27fb" TYPE="ext4"
[root@localhost ~]# e2label /dev/sdb1 wu
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="7ac5a57f-8f32-45d5-b362-1f51204a27fb" TYPE="ext4" LABEL="wu"
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# mkdir -v /mydate
mkdir: 已创建目录 "/mydate"
[root@localhost ~]#
原文地址:http://10498794.blog.51cto.com/10488794/1694801