码迷,mamicode.com
首页 > 系统相关 > 详细

linux分区管理

时间:2017-12-11 21:13:12      阅读:443      评论:0      收藏:0      [点我收藏+]

标签:linux   fdisk   parted   

管理分区
? ? ?? 列出块设备
??????????????lsblk
????????????????? 例 在centos6上加了几块硬盘
????????????????????????[root@centos6 ~]#lsblk??? 没有识别出来
????????????????????????[root@centos6 ~]#echo ‘- - -‘ > /sys/class/scsi_host/host2/scan? 强制扫描
????????????????????????[root@centos6 ~]#lsblk?? 已识别
????????????????????????[root@centos6 ~]#hexdump -C -n 512 /dev/sdb? 二进制查看新建硬盘没用数据

????????????? ? ? 例 破坏MBR分区表并恢复
????????????????????????[root@centos6 ~]#dd if=/dev/sda of=/app/mbr bs=1 count=512? 备份分区表到/app/mbr
????????????????????????[root@centos6 ~]#ll /app/mbr?? 查看确实是512字节
????????????????????????[root@centos6 ~]#hexdump -C /app/mbr??? 二进制查看
????????????????????????[root@centos6 ~]#dd if=/dev/zero of=/dev/sda bs=1 count=64 skip=446 seek=446? 破坏分区表
?????????????????????????????????count=64 64个字节,skip=446 跳过前446个字节开始读取,seek=446 跳过目标的前446个字节开始写 从第446个字节开始搜索(跳过446个字节,只覆盖中间的64个字节)
????????????????????????[root@centos6 ~]#hexdump -C -n 512 /dev/sda? 查看被0填充
????????????????????????[root@centos6 ~]#lsblk?? 还可以查看分区,是因为内存中还存有一份,如果重启就完蛋
????????????????????????[root@centos6 ~]#fdisk -l /dev/sda??? 无法查看分区,因为这个命令是查看磁盘上的分区表
?????????????????????????????查看分区四种方式
??????????????????????????????????????ls /dev/sd*?? 看设备名的方式??? 内存中
??????????????????????????????????????cat /proc/partitions????? 内存
??????????????????????????????????????lsblk?? 内存
??????????????????????????????????????fdisk -l /dev/sda??? 看磁盘上的分区表
????????????????????????[root@centos6 app]#scp mbr 192.168.27.129:/app/?? 将备份的分区表存到另外的机子上(centos7)
????????????????????????[root@centos7 ~]#ls /app/?? 查看centos7上确实有备份的mbr文件
????????????????????????[root@centos6 app]#reboot?? 重启发现无法启动
????????????????????????此时可以拆下硬盘挂到别的机子上将分区表恢复,也可以进入光盘救援模式
????????????????????????重启出现进度条时按Esc键,选择“CD-ROM Drive” “Rescue installed system”,进入救援模式
????????????????????????bash-4.1# pwd??? 现在的根目录不是硬盘的根目录,是光盘加载的一个简化版的小Linux系统
????????????????????????bash-4.1# lsblk? 不能看
????????????????????????bash-4.1# fdisk -l 可以看到硬盘
????????????????????????bash-4.1# ip a? 查看是否获取到IP
????????????????????????bash-4.1# scp 192.168.27.129:/app/mbr .? 将备份复制到当前目录
????????????????????????bash-4.1# dd if=mbr of=/dev/sda bs=1 count=64 skip=446 seek=446? 也可以512字节全部覆盖
????????????????????????bash-4.1# exit? 退出然后选择重启

????????????? ? ??例 将sda的分区表复制到sdb(新加的硬盘)(生产中不建议这么做,因为两块硬盘大小,分区方式不一定相同,而且复制不了逻辑分区,因为逻辑分区信息放在扩展分区中,不在mbr中)
????????????????????????[root@centos6 ~]#lsblk??? sdb是新加的一块硬盘
????????????????????????[root@centos6 ~]#dd if=/app/mbr of=/dev/sdb bs=1 count=66 skip=446 seek=446
????????????????????????????????将分区表复制到sdb,count=66 包括最后的两个标识符
????????????????????????[root@centos6 ~]#partx -a /dev/sdb?? 同步分区表
????????????????????????[root@centos6 ~]#lsblk?? 看到sdb出现分区
????????????????????????[root@centos6 ~]#dd if=/dev/zero of=/dev/sdb bs=1 count=512??? 删除sdb分区
????????????????????????[root@centos6 ~]#hexdump -C /dev/sdb?????????? 二进制查看
????????????????????????[root@centos6 ~]#fdisk -l /dev/sdb???????? 查看
????
????

?????????创建分区使用:
??????????????????fdisk 创建MBR分区
??????????????????gdisk 创建GPT分区
??????????????????parted 高级分区操作
?????? ? partprobe-重新设置内存中的内核分区表版本


parted命令
?????????parted的操作都是实时生效的,小心使用
?????????用法:parted [选项]... [设备 [命令 [参数]...]...]??
??????????????parted /dev/sdb? mklabel gpt|msdos???? 创建gpt或mbr分区
??????????????parted /dev/sdb? print?
??????????????parted /dev/sdb? mkpart primary 1 200 (默认M)?
??????????????parted /dev/sdb? rm 1?
??????????????parted -l
??????????????? ? 例 [root@centos6 ~]#parted /dev/sdb mklabel gpt? 在新硬盘sdb上建立gpt分区
??????????????? ?? ?? [root@centos6 ~]#parted /dev/sdb print? 查看
??????????????????? ? [root@centos6 ~]#fdisk -l /dev/sdb?? 传统工具也可查看,但会提示不支持
????????????????????? [root@centos6 ~]#parted /dev/sdb mkpart primary 1 1000?? 创建主分区1-1000M
????????????????????? [root@centos6 ~]#parted /dev/sdb print? 查看
????????????????????? [root@centos6 ~]#parted /dev/sdb rm 1?? 删除分区


分区工具fdisk和gdisk
?????????gdisk /dev/sdb 类fdisk 的GPT分区工具
?????????fdisk -l [-u] [device...] 查看分区
?????????fdisk /dev/sdb? 管理分区
??????????????例 重定向方法创建分区
???????????????????[root@centos6 ~]#echo -e ‘n\np\n2\n\n+10G\nw\n‘ | fdisk /dev/sdc
???????????????????[root@centos6 ~]#fdisk /dev/sdc <<EOF?? 或者多行重定向
????????????????????????> n
????????????????????????> p
????????????????????????> 2
????????????????????????>
????????????????????????> +5G
????????????????????????> w
????????????????????????> EOF
?????????子命令:
??????????????????p 分区列表
??????????????????t 更改分区类型
??????????????????n 创建新分区
??????????????????d 删除分区
??????????????????v 校验分区
??????????????????u 转换单位
??????????????????w 保存并退出
??????????????????q 不保存并退出

同步分区表
? ? ?? 查看内核是否已经识别新的分区:?
??????????????cat /proc/partitions
? ? ?? centos6通知内核重新读取硬盘分区表?
??????????????新增分区用??
???????????????????partx -a? /dev/DEVICE????
???????????????????kpartx -a /dev/DEVICE -f: force?
??????????????删除分区用? partx -d --nr M-N /dev/DEVICE
???????????????????例 [root@centos6 ~]#partx -d --nr 1-4 /dev/sde??? (由于删除sde1 sde2 sde3 sde4导致的不同步)
?????CentOS 5,7: 使用partprobe?
??????????????partprobe [/dev/DEVICE]


创建文件系统
? ? ? ? mkfs命令:
? ? ? ?? (1) mkfs.FS_TYPE /dev/DEVICE??
???????????????????????ext4??
???????????????????????xfs??
???????????????????????btrfs??
???????????????????????vfat
?????????(2) mkfs -t FS_TYPE /dev/DEVICE??
???????????????????????-L ‘LABEL‘: 设定卷标
?????????例 [root@centos6 /]#mkfs.ext4 /dev/sdb2?? 创建文件系统
??????? ? ? ? [root@centos6 /]#blkid? 查看
?????????例 三种写法
??????????????[root@centos6 /]#mkfs.ext2 /dev/sdb3
??????????????[root@centos6 /]#mkfs -t ext2 /dev/sdb3
??????????????[root@centos6 /]#mke2fs /dev/sdb3

支持的文件系统:/lib/modules/`uname –r`/kernel/fs?
查前支持的文件系统:cat /proc/filesystems

创建ext文件系统
? ? ? ? mke2fs:ext系列文件系统专用管理工具?
??????????????? -t {ext2|ext3|ext4}?
??????????????? -b {1024|2048|4096}? 指定块大小
??????????????????? ?例 [root@centos6 ~]#tune2fs -l /dev/sdb3??? 留意 Block size
??????????????????? ? ? ? [root@centos6 ~]#mkfs -b 1024 /dev/sdb3?? 指定为1024??? 1024个字节,1K
??????????????????????? ? [root@centos6 ~]#mke2fs -b 2048 /dev/sdb3? 指定为2048?? 2K

??????????????? -L ‘LABEL‘?
??????????????? -j: 相当于 -t ext3????
??????????????????? ?mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3?
??????????????? -i #: 为数据空间中每多少个字节创建一个inode;此大 小不应该小于block的大小?
??????????????? -N #:指定分区中创建多少个inode?
??????????????? -I 一个inode记录占用的磁盘空间大小,128---4096?
??????????????? -m #: 默认5%,为管理人员预留空间占总空间的百分比?
??????????????? -O FEATURE[,...]:启用指定特性?
??????????????? -O ^FEATURE:关闭指定特性

文件系统标签
???? ?? 指向设备的另一种方法
???? ?? 与设备无关
????? ? blkid:块设备属性信息查看
??????????????blkid [OPTION]... [DEVICE]
??????????????-U UUID: 根据指定的UUID来查找对应的设备
???????????????????例 通过/app对应的UUID查找设备
????????????????????????[root@centos6 ~]#blkid -U `sed -rn ‘s#^UUID=(.*) /app .*#\1#p‘ /etc/fstab` (/app后加空格是为防止名称为apppp)
??????????????-L LABEL:根据指定的LABEL来查找对应的设备
???????????????????例?[root@centos7 ~]#mkfs.xfs -f /dev/sdb1 -L /mnt/sdb1?
????????????????????????sdb1挂载到文件夹/mnt/sdb1??? 建议卷标名设为设备挂载点的文件夹名称

???? ?? e2label:管理ext系列文件系统的LABEL?
??????????????e2label DEVICE [LABEL]
???????????????????例 [root@centos6 ~]#e2label /dev/sdb2 /mnt/sdb2??? 添加卷标(将挂载点作为卷标)
????? ? findfs :查找分区?
??????????????findfs [options] LABEL=<label>?
??????????????findfs [options] UUID=<uuid>

tune2fs:重新设定ext系列文件系统可调整参数的值?
? ? ? ? -l:查看指定文件系统超级块信息;super block?
? ? ? ? -L ‘LABEL‘:修改卷标?
? ? ? ? -m #:修预留给管理员的空间百分比?
? ? ? ? -j: 将ext2升级为ext3?
? ? ? ? -O: 文件系统属性启用或禁用, –O ^has_journal
???????????? ?例 [root@centos6 ~]#tune2fs -O has_journal /dev/sdb3 (sdb3原来为ext2,变为ext3)
???? ????????? ? ? [root@centos6 ~]#tune2fs -O ^has_journal /dev/sdb3 再去掉? (注意UUID不会发生变化)
???????? -o: 调整文件系统的默认挂载选项,–o ^acl??
???????? -U UUID: 修改UUID号
dumpe2fs:?
??????????块分组管理,32768块?
??????????-h:查看超级块信息,不显示分组信息

文件系统检测和修复
????? ? 常发生于死机或者非正常关机之后
????? ? 挂载为文件系统标记为“no clean”
????????注意:一定不要在挂载状态下修复
????? ? fsck: File System Check? (其实是调用e2fsck)
??????????????fsck.FS_TYPE?
??????????????fsck -t FS_TYPE?
??????????????-p: 自动修复错误?
??????????????-r: 交互式修复错误?
??????????????FS_TYPE一定要与分区上已经文件类型相同
???? ?? e2fsck:ext系列文件专用的检测修复工具?
??????????????-y:自动回答为yes?
??????????????-f:强制修复

????? ? 例
??????????????[root@centos6 ~]#dd if=/dev/zero of=/dev/sdb2 bs=1M count=10?? 破坏sdb2
??????????????[root@centos6 ~]#dumpe2fs /dev/sdb2??? 超级块信息不能查看
??????????????[root@centos6 ~]#fsck /dev/sdb2?? 修复,需要回答好多yes
??????????????[root@centos6 ~]#fsck -a /dev/sdb2?? -a不自动回答yes


linux分区管理

标签:linux   fdisk   parted   

原文地址:http://blog.51cto.com/13488618/2049519

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!