首页 > 代码库 > linux 硬盘分区
linux 硬盘分区
环境:Red Hat 4.8.3-9
软件依赖:无
使用原因:申请100G虚拟机,但df查看发现只有20G
查看现有分区挂在情况:
[scm_user@localhost ~]$ df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 14G 994M 13G 7% / devtmpfs 7.8G 0 7.8G 0% /dev tmpfs 7.8G 0 7.8G 0% /dev/shm tmpfs 7.8G 8.5M 7.8G 1% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/sda1 497M 125M 373M 25% /boot
因申请的为100G虚拟机,发现设备数据不对,随即进行确认
查看设备分区情况:
[scm_user@localhost ~]$ cat /proc/partitions major minor #blocks name 8 0 125829120 sda 8 1 512000 sda1 8 2 16264192 sda2 部分内容删除,仅保留有效数据....
根据数据可以看出,磁盘空间(sda)为120G,但使用的分区(sda1+sda2)只有20G有近100G并未进行分区使用
使用fdisk命令确认硬盘实际分区情况(若查看全部硬盘,可使用fdisk -l)
[root@localhost ~]# fdisk -l /dev/sda 磁盘 /dev/sda:128.8 GB, 128849018880 字节,251658240 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0007e5bc 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 33554431 16264192 8e Linux LVM
这个硬盘是128.8G的
硬盘分区的表示:在Linux 是通过hd*x 或 sd*x 表示的,其中 * 表示的是a、b、c …… …… x表示的数字 1、2、3 …… …… hd大多是IDE硬盘;sd大多是SCSI或移动存储;
设备/device:分区序列
引导/Boot:表示引导分区,在上面的例子中 hda1 是引导分区;
开始/Start:表示的一个分区从X cylinder(磁柱)开始;
结束/End:表示一个分区到 Y cylinder(磁柱)结束;
容量/Blocks:
其单位是K;一个分区容量的值是由下面的公式而来的;
Blocks = (相应分区End数值 - 相应分区Start数值)x 单位cylinder(磁柱)的容量
所以我们算一下 hda1的 Blocks 的大小 :
hda1 Blocks=(765-1)x8225.280=6284113.92 K = 6284.113.92M
分区类型id/Id:见分区类型;
分区类型/System:id和System 表示的是一个意思,id看起来不太直观,我们要在fdisk 一个分区时,通过指定id来确认分区类型;比如 7表示的就NTFS 分区;这个在fdisk 中要通过t功能来指定。
进入分区状态:
[root@localhost ~]# fdisk /dev/sda 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 命令(输入 m 获取帮助):
输入m获取帮助信息
命令(输入 m 获取帮助):m 命令操作 a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition g create a new empty GPT partition table G create an IRIX (SGI) partition table 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)
下面我们来看看各个指令的使用说明:
a :设置可引导标记
b :修改bsd的磁盘标签
c :设置DOS操作系统兼容标记
d :删除一个分区
l :显示已知的分区类型,其中82为Linux swap分区,83为Linux分区
m :显示帮助信息
n :增加一个新的分区
o :创建一个新的空白的DOS分区表
p :显示磁盘当前的分区表
q :退出fdisk程序,不保存任何修改
s :创建一个新的空白的Sun磁盘标签
t :改变一个分区的系统号码(比如把Linux Swap分区改为Linux分区)
u :改变显示记录单位
v :对磁盘分区表进行验证
w :保存修改结果并退出fdisk程序
x :特殊功能,不建议初学者使用
p显示磁盘分区情形
命令(输入 m 获取帮助):p 磁盘 /dev/sda:128.8 GB, 128849018880 字节,251658240 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0007e5bc 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 33554431 16264192 8e Linux LVM
显示已有两个分区sda1、sda2
n增加第一个新的分区
命令(输入 m 获取帮助):n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): p 分区号 (3,4,默认 3):3 起始 扇区 (33554432-251658239,默认为 33554432): 将使用默认值 33554432 Last 扇区, +扇区 or +size{K,M,G} (33554432-251658239,默认为 251658239): 将使用默认值 251658239 分区 3 已设置为 Linux 类型,大小设为 104 GiB
输入 e 硬盘为[延伸]分割区(extend)。
输入 p 硬盘为[主要]分割区(primary)。
因需要将剩下的磁盘,分在一个分区,用于存储数据,所以全部选择默认
p再次查看分区情况
命令(输入 m 获取帮助):p 磁盘 /dev/sda:128.8 GB, 128849018880 字节,251658240 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0007e5bc 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 33554431 16264192 8e Linux LVM /dev/sda3 33554432 251658239 109051904 83 Linux
发现已增加sda3分区,空间104G
w保存退出
命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: 设备或资源忙. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) 正在同步磁盘。
注意:该部分出现错误提示,设备或资源忙,内核使用的还是旧的列表,若需要更新使用partprobe命令
若未使用该命令,会发现/dev目录下无sda3设备文件,无法进行下面的操作
partprobe命令不输出任何提示,结束后查看/dev目录下有sda3设备文件
[root@localhost ~]# ls /dev/sda3 -ls 0 brw-------. 1 root root 8, 3 4月 21 14:57 /dev/sda3
这时候在df -h命令中无法查看到该分区,因为未映射
fdisk -l /dev/sda 命令可以查看到该分区
fdisk -l /dev/sda 磁盘 /dev/sda:128.8 GB, 128849018880 字节,251658240 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0007e5bc 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 33554431 16264192 8e Linux LVM /dev/sda3 33554432 251658239 109051904 83 Linux
格式化分区
[root@localhost ~]# mkfs.ext4 /dev/sda3 mke2fs 1.42.9 (28-Dec-2013) 文件系统标签= OS type: Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 6815744 inodes, 27262976 blocks 1363148 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=2174746624 832 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: 完成 正在写入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成
mount挂载分区,df 查看挂载后结果
[root@localhost ~]# mount /dev/sda3 /opt [root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root 14G 994M 13G 7% / devtmpfs 7.8G 0 7.8G 0% /dev tmpfs 7.8G 0 7.8G 0% /dev/shm tmpfs 7.8G 8.5M 7.8G 1% /run tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup /dev/sda1 497M 125M 373M 25% /boot tmpfs 1.6G 0 1.6G 0% /run/user/0 tmpfs 1.6G 0 1.6G 0% /run/user/1000 /dev/sda3 103G 61M 97G 1% /opt
参考:http://fuwenchao.blog.51cto.com/6008712/1329975
本文出自 “grace的技术小窝” 博客,请务必保留此出处http://jimann.blog.51cto.com/3295893/1918232
linux 硬盘分区