Top
分区工具-----parted
选项及含义
选项 |
含义 |
-l【--list】 |
列出所有设别的分区信息 |
-i 【--interactive】 |
在必要时,提示用户 |
-s【--script】 |
从不提示用户, 非交互方式 |
子选项命令
检查 MINOR # 对文件系统进行一个简单的检查
cp [FROM-DEVICE] FROM-MINOR TO-MINOR # 将文件系统复制到另一个分区
help [COMMAND] # 打印通用求助信息,或关于 COMMAND 的信息
mklabel 标签类型 # 创建新的磁盘标签 (分区表)
mkfs MINOR 文件系统类型 # 在 MINOR 创建类型为“文件系统类型”的文件系统
mkpart 分区类型 [文件系统类型] 起始点 终止点 # 创建一个分区
move MINOR 起始点 终止点 # 移动编号为 MINOR 的分区
name MINOR 名称 # 将编号为 MINOR 的分区命名为“名称”
print [MINOR] # 打印分区表,或者分区
quit # 退出程序
rescue 起始点 终止点 # 挽救临近“起始点”、“终止点”的遗失的分区
resize MINOR 起始点 终止点 # 改变位于编号为 MINOR 的分区中文件系统的大小
rm MINOR # 删除编号为 MINOR 的分区
select 设备 # 选择要编辑的设备
set MINOR 标志 状态 # 改变编号为 MINOR 的分区的标志
命令示例
非交互式创建分区
# 以下创建分区的方式都是等价的,为 ext4 分区, 或之后再使用 mkfs 命令创建文件系统
parted /dev/sdb mkpart primary 1 50
parted -s -- /dev/sdb mkpart shiwei ext4 50 100
echo "mkpart data ext4 1 50M" | parted /dev/sdb
# 同时创建 3 个分区, 前两个为 ext4 类型, 第 3 个未知
parted /dev/sdb mkpart ext4 1 50 mkpart ext4 50 100 mkpart ext4 100 150
非交互式删除分区
parted /dev/sdb rm 1 # 指定分区编号
parted /dev/sdb rm 2 rm 3 rm 5 # 同时删除多个分区
# 批量删除 127 个分区,但挺慢 , 一秒一个
for ddd in `seq 1 127`; do parted /dev/sdb rm ${ddd}; done
打印分区表
parted /dev/sdb p # parted /dev/sdb print
修改分区名称
parted /dev/sdb name 1 shiwei # 需注意指定的为原分区的编号
修改分区大小
# 注意修改分区大小只可缩容 或者是 扩容时利用闲置 柱面, 最后一个参数为柱面号
parted /dev/sdb resizepart 1 800 # 设置 第一个 分区结束柱面为 800
参考网址
Linux磁盘分区--GPT分区
磁盘分区工具------ fdisk
sd代表的是SCSI,SATA接口硬盘
hd代表IDE接口的硬盘
sda和hda最后面的a都代表的是第一块硬盘
sda1和hda1则代表的是该硬盘的第一分区
选项和含义
命令flags标记及功能
标记命令 |
含义 |
m |
输出帮助信息 |
a |
设置启动分区 |
b |
编辑分区标签 |
d【delete】 |
删除一个分区 |
l【list】 |
列出分区类型 |
n【new】 |
创建新的分区 |
p【print】 |
打印分区表 |
w【write】 |
保存分区表 |
q【quit】 |
退出不保存设置 |
t |
改变分区 ID |
u |
改变显示的单位 |
o |
创建一个新的空白的 Dos 分区表 |
v |
检查验证分区表 |
命令示例
展示硬盘详细信息
fdisk -l
# 单独展示某一个盘详细分区信息
fdisk -l /dev/sda
非交互式打印分区表
fdisk /dev/sdc << EOF
p
q
EOF
# 第二种方式将命令写入文件
cat commands | fdisk /dev/sdc
非交互式创建 GPT 格式分区
# 先要创建 GPT 格式分区表, 会自动删除老的分区表,
printf "g\n p\n w\n" | fdisk /dev/sdb
printf "n\n \n \n +100M\n n\n \n \n +100M\n n\n \n \n +100M\n p\n w\n" | fdisk /dev/sdb
# 迅速创建 128 个分区
for ddd in `seq 1 128`;do printf "n\n \n \n +100M\n p\n w\n" | fdisk /dev/sdb ; done
非交互式删除分区
# 注意在每个命令的后面都要添加一个换行符,且之间不能有多余的字符,例如:空格等, 命令之间用空格隔开
echo -e "d\n 3\n d\n 2\n d\n w\n p\n q" | fdisk /dev/sdb
printf "d\n 2\n p\n w\n" | fdisk /dev/sdb
# 迅速删除 127 个分区
for ddd in `seq 1 128`; do printf "d\n${ddd}\nw\n" | fdisk /dev/sdb ; done
# 第二种方式
echo > fdisk ; for ddd in `seq 1 128`; do printf "d\n${ddd}\n" ; if [ $ddd -eq 128 ]; then printf "w\n"; fi; done >> fdisk ; wait; cat fdisk | fdisk /dev/sdb ;
迅速挂载 128个分区
# 分区
for ddd in `seq 1 128`;do printf "n\n \n \n +100M\n p\n w\n" | fdisk /dev/sdb ; done
# 创建文件系统
for ddd in `seq 1 128`; do mkfs -t ext4 /dev/sdb${ddd}; done
# 挂载
for ddd in `seq 1 128`; do mount -o rw,noatime,nodiratime,nobarrier /dev/sdb${ddd} /data/${ddd}; done
# 配置开机自动挂载
for ddd in `seq 1 128`; do echo -e "/dev/sdb${ddd}\t/data/${ddd}\text4\trw,noatime,nodiratime,nobarrier\t0\t0" >> /etc/fstab ; done
磁盘格式化工具 --- mkfs
# 格式化 ext4
mkfs.ext4 <Partition>
# 格式化 btrfs
mkfs.btrfs <Partition>
# 临时挂载
mount <Partition> <Point>
# 永久挂载
修改 /etc/fstab 文件
# 查看分区
lsblk, fdisk , parted