磁盘分区的方法
Posted wenrulaogou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了磁盘分区的方法相关的知识,希望对你有一定的参考价值。
1.1 分区简单介绍
linux里面的分区工具
fdisk 主要是给磁盘小于2T(只能出来分区表是mbr的)
parted 主要是给磁盘大于2T(gpt)
创建环境
在虚拟机添加两块硬盘 模拟实验环境 保证有两块新的未使用的磁盘
1.2 /etc/fatab详解
/etc/fatab 开机自动挂载
# # /etc/fstab # Created by anaconda on Tue Jul 10 18:21:44 2018 # # Accessible filesystems, by reference, are maintained under ‘/dev/disk‘ # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=c4f4be67-f408-4f14-b01e-a0c0777932cb / ext4 defaults 1 1 UUID=8dc40910-35ed-4d1b-acd7-5dad0ad47746 /boot ext4 defaults 1 2 UUID=09e2ce6c-7249-4239-8843-5ef9cc3a9a99 swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 设备分区名称 第二列挂载点(目录) 文件系统类型 挂载参数 是否备份 是否开机磁盘检查
1.3 显示系统中的uuid
使用blkid 命令可以查看系统磁盘的uuid
[[email protected] ~]# blkid /dev/sda3: UUID="49bad9e9-cf33-4a15-ba84-4fd28e70bd29" TYPE="ext4" /dev/sda1: UUID="7426d0f3-56d6-4fa6-a1c3-f2c8632bfbb8" TYPE="ext4" /dev/sda2: UUID="46bc0a52-b13f-4845-8baa-90207849d5c5" TYPE="swap" /dev/sdb1: UUID="7101630b-b325-49d1-92b9-0a500c2a07f6" TYPE="ext4"
1.4 fdisk分区
刚才模拟环境添加了两块硬盘
[[email protected] ~]# fdisk -l|grep sd[a-c]: Disk /dev/sda: 21.5 GB, 21474836480 bytes Disk /dev/sdb: 213 MB, 213909504 bytes 这两块就是刚才添加的 213MB Disk /dev/sdc: 213 MB, 213909504 bytes
1.4.1 fdisk相关命令
fdisk命令及参数
fdisk -l
-u 磁盘分区的时候以扇区为单位默认是按照柱面
-c 关闭dos兼容模式
fdisk内部命令
m 显示帮助
n new 创建分区
p 显示所有分区信息
d 删除分区
w 保存并退出
q 退出不保存
1.4.2 创建一个主分区
如果要把硬盘全部空间都用上 在选择大小那一列 直接回车 不输入内容 默认是按最大空间
创建一个10MB主分区
fdisk -cu关闭dos兼容模式 磁盘分区的时候以扇区为单位默认是按照柱面 [[email protected]-50 ~]# fdisk -cu /dev/sdb 进入fdisk 编辑分区 Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x303d0abc. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won‘t be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): n 创建分区 Command action 选择分区类型 e extended p primary partition (1-4) p Partition number (1-4): 1 分区号码 First sector (2048-417791, default 2048): 从哪里开始 (直接回车 按默认) Using default value 2048 默认选择第一个扇区 Last sector, +sectors or +size{K,M,G} (2048-417791, default 417791): +10M 创建10M的分区 选择+10M Command (m for help): p p显示所有分区信息 Disk /dev/sdb: 213 MB, 213909504 bytes 64 heads, 32 sectors/track, 204 cylinders, total 417792 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x303d0abc Device Boot Start End Blocks Id System /dev/sdb1 2048 22527 10240 83 Linux
1.4.3 创建扩展分区及逻辑分区
工作中 扩展分区的分区原则是:剩多少给多少
创建10MB的主分区 创建一个使用所有容量的扩展分区 创建两个50MB逻辑分区 [[email protected]-50 ~]# fdisk -cu /dev/sdb 进入fdisk 编辑分区 Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x303d0abc. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won‘t be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): p 从上一步继续 创建两个逻辑分区 查看一下有的分区 Disk /dev/sdb: 213 MB, 213909504 bytes 64 heads, 32 sectors/track, 204 cylinders, total 417792 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x303d0abc Device Boot Start End Blocks Id System /dev/sdb1 2048 22527 10240 83 Linux Command (m for help): n 创建新的分区 Command action e extended 扩展分区 p primary partition (1-4) e 创建扩展分区分区 Partition number (1-4): 2 选择分区号码 First sector (22528-417791, default 22528): Using default value 22528 Last sector, +sectors or +size{K,M,G} (22528-417791, default 417791): Using default value 417791 Command (m for help): n 创建新的分区 Command action l logical (5 or over) 逻辑分区,创建完扩展分区后只能创建逻辑分区 p primary partition (1-4) l 选择l 创建逻辑分区 有扩展分区后才能创建逻辑分区 First sector (24576-417791, default 24576): Using default value 24576 Last sector, +sectors or +size{K,M,G} (24576-417791, default 417791): +50M 选择50M Command (m for help): P 查看下所有的分区信息 Disk /dev/sdb: 213 MB, 213909504 bytes 64 heads, 32 sectors/track, 204 cylinders, total 417792 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x303d0abc 创建成功 一个10M的主分区 两个逻辑分区 如果要删除的话 d删除 删除扩展分区 其下的所有逻辑分区都会被删除 Device Boot Start End Blocks Id System /dev/sdb1 2048 22527 10240 83 Linux /dev/sdb2 22528 417791 197632 5 Extended /dev/sdb5 24576 126975 51200 83 Linux /dev/sdb6 129024 231423 51200 83 Linux
1.5 fdisk分区及挂载
1.5.1 创建一个主分区
1.5.1.1 进入fdisk
[[email protected] ~]# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x0a515057. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won‘t be recoverable. 警告 : 可以关闭dos的兼容模式,使用扇区作为分区的默认单位 -cu ↓ Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) 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: 213 MB, 213909504 bytes 64 heads, 32 sectors/track, 204 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0a515057 Device Boot Start End Blocks Id System 现在没有创建分区 所以为空
1.5.1.2 创建主分区
Command (m for help): n 创建新分区 Command action e extended p primary partition (1-4) p 创建主分区 Partition number (1-4): 1 分区号码设置为一 First cylinder (1-204, default 1): Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-204, default 204): Using default value 204
1.5.1.3 创建完保存退出
fdisk编辑完退出前记得保存
Command (m for help): w w保存退出 fdisk编辑完 退出前记得保存 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [[email protected]-50 ~]# fdisk -l 创建完成后 可以查看下
1.5.2 格式化文件系统
mkfs ==make filesystem即创建文件系统。
[[email protected] ~]# partprobe /dev/sdb1 操作这一步 正常是不回任何提示的 [[email protected]-50 ~]# mkfs.ext4 /dev/sdb1 这一步会生成block和inode 使用mkfs.ext4 会报以下警告 This filesystem will be automatically checked every 25 mounts or 这个磁盘分区会被自动检查 每挂载25次或每隔180天 就会进行一次磁盘检查 180 days, whichever comes first. Use tune2fs -c or -i to override. 关闭磁盘的自动检查 使用tune2fs -c or -i可以关闭 -c 每挂载多少次进行一次磁盘检查 -c 0 关闭 -i 每隔多少天进行一次磁盘检查 -i 0 关闭
1.5.3 关闭分区的自动检查
-c 每挂载多少次进行一次磁盘检查 -c 0 关闭
-i 每隔多少天进行一次磁盘检查 -i 0 关闭
[[email protected] ~]# tune2fs -c 0 -i 0 /dev/sdb1 tune2fs 1.41.12 (17-May-2010) Setting maximal mount count to -1 Setting interval between checks to 0 seconds
1.5.4 挂载分区
挂载到/data 没有/data记得事先创建好
[[email protected] ~]# mkdir -p /data 创建挂载目录 [[email protected]-50 ~]# mount /dev/sdb1 /data/ 挂载 [[email protected]-50 ~]# df -h 挂载后记得检查 Filesystem Size Used Avail Use% Mounted on /dev/sda3 19G 1.7G 16G 10% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 190M 35M 146M 19% /boot /dev/sdb1 194M 1.8M 182M 1% /data 已挂载
1.5.5 永久挂载
/etc/rc.local 开机自启动
追加到 /etc/fatab底部 /bin/mount /dev/sdb1 /data/
/etc/fatab 开机自动挂载
[[email protected] ~]# vim /etc/fstab
/dev/sdb1 /data ext4 defaults 0 0
1.6 创建swap
故障案例 java程序占用 大量内存 开始使用swap swap 不足
增加swap
[[email protected] ~]# free -h total used free shared buffers cached Mem: 980M 275M 704M 236K 28M 132M -/+ buffers/cache: 114M 866M Swap: 767M 0B 767M swap信息
1.6.1 创建一个文件 成为swap
dd创建
/dev/zero 不断输出 零
/dev/null 黑洞
if input file 从哪里获取数据 (输入文件)
of output file 输出到哪里
bs block size 每次复制多少文件
count 复制多少次
创建一个100M的文件 [[email protected]-50 ~]# dd if=/dev/zero of=/tmp/100m bs=1M count=100 100+0 records in 100+0 records out 104857600 bytes (105 MB) copied, 0.441882 s, 237 MB/s [[email protected]-50 ~]# ll -h /tmp/100m 检查 -rw-r--r-- 1 root root 100M Aug 15 11:58 /tmp/100m 创建成功
1.6.2 让这个文件成为swap
创建swap 让这个文件成为swap(格式化)
mkswap
[[email protected] ~]# mkswap /tmp/100m mkswap: /tmp/100m: warning: don‘t erase bootbits sectors on whole disk. Use -f to force. Setting up swapspace version 1, size = 102396 KiB no label, UUID=9ee16d10-5fab-495d-a5fd-697b74ca360e [[email protected]-50 ~]# file /tmp/100m file命令显示这个文件的类型 /tmp/100m: Linux/i386 swap file (new style) 1 (4K pages) size 25599 pages
1.6.3 激活swap分区
swapon -s 显示swap的组成情况
[[email protected] ~]# swapon /tmp/100m 挂载(激活) [[email protected]-50 ~]# swapon -s Filename Type Size Used Priority /dev/sda2 partition 786428 0 -1 /tmp/100m file 102396 0 -2
永久增加
/etc/rc.local
/sbin/swapon /tmp/100m
1.7 parted创建分区
1.7.1 parted的使用
parted 的使用 parted 还可以非交互式创建分区
parted使用需谨慎 parted是实时保存的
parted /dev/sdc
print 显示分区信息
mktable 创建磁盘分区表
gpt
msdos(mbr)
mkpart 创建分区
rm 删除分区
q 退出不保存
[[email protected] ~]# parted /dev/sdc 使用parted编辑分区 GNU Parted 2.1 Using /dev/sdc Welcome to GNU Parted! Type ‘help‘ to view a list of commands. (parted) p p查看分区 Error: /dev/sdc: unrecognised disk label 未识别 (parted) mktable gpt 创建 gpt 磁盘分区表 (parted) p p查看分区 Model: VMware, VMware Virtual S (scsi) Disk /dev/sdc: 214MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags (parted) mkpart LH 0 10 创建 分区 分区名LH 从多少开始到多少结束 Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? i 忽略信息 i (parted) p p查看分区 Model: VMware, VMware Virtual S (scsi) Disk /dev/sdc: 214MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 17.4kB 10.0MB 9983kB LH (parted) mkpart LH 10 20 创建 分区 分区名LH 从多少开始到多少结束 (parted) p p查看分区 Model: VMware, VMware Virtual S (scsi) Disk /dev/sdc: 214MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 17.4kB 10.0MB 9983kB LH 2 10.5MB 19.9MB 9437kB (parted) rm 2 删除第二个分区 (parted) p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdc: 214MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 17.4kB 10.0MB 9983kB LH
1.7.2 非交互式创建分区
parted 后面直接跟上内置的命令 就可以直接使用 实现非交互式创建
parted /dev/sdc mktable gpt parted /dev/sdc mkpart primary 0 10 ignore parted /dev/sdc mkpart primary 10 20 parted /dev/sdc p [[email protected]-50 ~]# parted /dev/sdc p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdc: 214MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 17.4kB 10.0MB 9983kB LH
1.8 未格式化出现的错误
对磁盘进行一些操作的时候可能会提示没有格式化磁盘,需要格式化。
[[email protected] ~]# tune2fs -c0 -i0 /dev/sdc tune2fs 1.41.12 (17-May-2010) tune2fs: Bad magic number in super-block while trying to open /dev/sdc Couldn‘t find valid filesystem superblock. 没有找到可用的文件系统
以上是关于磁盘分区的方法的主要内容,如果未能解决你的问题,请参考以下文章