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