linux进行分区的代码,linux 硬盘分区(示例代码)

环境:Red Hat 4.8.3-9

软件依赖:无

使用原因:申请100G虚拟机,但df查看发现只有20G

查看现有分区挂在情况:[[email protected] ~]$ 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虚拟机,发现设备数据不对,随即进行确认

查看设备分区情况:[[email protected] ~]$ 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)[[email protected] ~]# 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功能来指定。

进入分区状态:[[email protected] ~]# 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设备文件[[email protected] ~]# 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

格式化分区[[email protected] ~]# 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 查看挂载后结果[[email protected] ~]# mount /dev/sda3 /opt

[[email protected] ~]# 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值