linux磁盘分区

admin 2022年1月6日01:35:43评论105 views字数 3595阅读11分59秒阅读模式

最近要下载一大堆的资料到服务器上,服务器系统盘的磁盘容量有点不够,还有一个11T的机械硬盘没有使用,但没有分区也没挂载,直接挂载有点浪费,先分区一下。

首先先了解一下分区的一些知识:

  • 硬盘分区有三种,主磁盘分区、扩展磁盘分区、逻辑分区。

  • 一个硬盘主分区至少有1个,最多4个,扩展分区可以没有,最多1个。且主分区+扩展分区总共不能超过4个。逻辑分区可以有若干

  • 但扩展分区是不能直接用的,他是以逻辑分区的方式来使用的,所以说扩展分区可分成若干逻辑分区

  • 在linux中第一块硬盘分区为hda分区(或者是sda分区),主分区编号为hda1-4,逻辑分区从5开始。

  • 一个是放置该硬盘的信息区,称之为主引导分区(master boot recorder,MBR),一个是实际文件数据放置的地方.其中,MBR是整个硬盘最重要的区域.一旦MBR物理实体损坏时,则该硬盘就差不多报废了.一般来说,MBR有512个字节,且可以分为两个部分.

    • (1)第一部分有446个字节,用于存放引导代码,即bootloader.
    • (2)第二部分有64个字节,用于存放磁盘分区表.其中,每个分区的信息需要用16个字节来记录,因此,一个硬盘最多可以有4个分区.这4个分区称之为主分区和扩展分区(extended).
  • Linux 先有目录,再将物理地址(分区)映射到目录中(windows相反).所有路径都是从根目录开始。默认分为:boot分区、swap分区和根分区.(另外:每个系统有自己的格式。linux(ext2,ext3,ext4),windows(ntfs,fat32))

    • /boot区,通常情况下根据Linux的版本不同,个人分区习惯会不同,我这里分配了500M给这个分区。

    • swap区,交换区,通常分配给其的大小为物理内存的2倍,但是最好不要超过256M,所以我这里分配了256M给这个分区。

    • / 区,也就是根目录,这个分区尽量给其分配大的空间,可以将安装Linux系统的这个硬盘上除去分给/boot、swap区以外的空间都分配给这个分

具体详情可看
Linux学习之CentOS(八)–Linux系统的分区概念

尝试了常见的fdisk分区方法

fdisk分区

0x1.1首先fdisk -l 查看硬盘及分区信息
这里举例其中的一部分

1
2
3
4
5
6
7
8
9
10
11

Disk /dev/nvme0n1: 953.9 GiB, 1024209543168 bytes, 2000409264 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
Disklabel type: gpt
Disk identifier: A7245786-B2A7-4BEB-9B3E-1CAE85EE0D61

Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme0n1p2 1050624 2000408575 1999357952 953.4G Linux filesystem

具体的解释可看
linux磁盘分区fdisk命令详解

0x1.2 fdisk命令参数介绍

1
2
3
4
5
6
m、一些参数解释
p、打印分区表。
n、新建一个新分区。
d、删除一个分区。
q、退出不保存。
w、把分区写进分区表,保存并退出。

具体的分区操作可看fdisk命令详解
当硬盘空间大于2TB时,不能使用fdisk进行分区,因为fdisk最大支持2TB,且ext4不支持16TB以上的磁盘格式化,超过2T的磁盘只会显示2T,这里的磁盘有10.9T,所以我这里使用parted和xfs。

parted分区

0x2.1parted命令详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
检查 MINOR                           #对文件系统进行一个简单的检查 
cp [FROM-DEVICE] FROM-MINOR TO-MINOR #将文件系统复制到另一个分区
help [COMMAND] #打印通用求助信息,或关于 COMMAND 的信息
mklabel 标签类型 #创建新的磁盘标签 (分区表)
mkfs MINOR 文件系统类型 #在 MINOR 创建类型为“文件系统类型”的文件系统
mkpart 分区类型 [文件系统类型] 起始点 终止点 #创建一个分区
mkpartfs 分区类型 文件系统类型 起始点 终止点 #创建一个带有文件系统的分区
move MINOR 起始点 终止点 #移动编号为 MINOR 的分区
name MINOR 名称 #将编号为 MINOR 的分区命名为“名称”
print [MINOR] #打印分区表,或者分区
quit #退出程序
rescue 起始点 终止点 #挽救临近“起始点”、“终止点”的遗失的分区
resize MINOR 起始点 终止点 #改变位于编号为 MINOR 的分区中文件系统的大小
rm MINOR #删除编号为 MINOR 的分区
select 设备 #选择要编辑的设备
set MINOR 标志 状态 #改变编号为 MINOR 的分区的标

0x2.2实例
0x2.2.1要分区的磁盘

1
parted /dev/sda

0x2.2.2创建磁盘标签为gpt

如果你的磁盘里有数据的话,这里会出现警告,继续操作将会销毁所有数据
如果你的数据都已经备份的话,请根据提示键入y并回车

1
(parted) mklabel gpt

0x2.2.3mkpart开始分区

1
2
3
4
5
(parted) mkpart
Partition name? []? sdb1 #指定分区名称
File system type? [ext2]? ext4 #指定分区类型
Start? 0% #指定分区开始位置
End? 20% #指定分区结束位置

start和end建议用%来分区。

以防出现分区不对齐

1
Warning: The resulting partition is not properly aligned for best performance.

其他方法可看:parted分区对齐

0x2.2.4p查看磁盘信息

1
2
3
4
5
6
7
8
9
10
11
12
13

(parted) p
Model: ATA ST12000DM0007-2G (scsi)
Disk /dev/sda: 12.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1049kB 2400GB 2400GB ext4 data
2 2400GB 4800GB 2400GB sda1
3 4800GB 7200GB 2400GB sda2
4 7200GB 12.0TB 4800GB sda3

0x2.2.5退出

1
(parted) quit  #quit退出

磁盘格式化

格式化命令如下

1
mkfs -t ext4 -c /dev/sdc

如果硬盘太大就必须采用快速格式化,不然会等到死

1
mkfs.ext4  -T largefile /dev/sdc

挂载

在mnt下创建一个空目录sda1,挂载到此目录上

1
sudo mount /dev/sda1  /mnt/sda1

这种方法有个不好的都方是机器重启后变又得手工重新挂载.
,永久性挂载分区的办法是修改分区文件/etc/fstab

查看磁盘的UUID和文件格式

1
sudo blkid /dev/sda1

结果如下:

1
/dev/sda1: UUID="afb1bcb7-a96d-430e-9559-968f0958175e" TYPE="ext4" PARTLABEL="data" PARTUUID="b2242d48-e2a7-4185-b92a-4b8a3277b62c"

然后,我们按照/etc/fstab文件中的格式添加一行如下内容:

1
UUID=afb1bcb7-a96d-430e-9559-968f0958175e  /mnt/sda1 ext4 defaults        0       2

其中第一列为UUID, 第二列为挂载目录(该目录必须为空目录),第三列为文件系统类型,第四列为参数,第五列0表示不备份,最后一列必须为2或0(除非引导分区为1)

最后输入

1
mount -a

查看挂载情况

1
mount

允许普通用户访问

0x4.1任何用户都有权限

1
sudo chmod -R 777 /mnt/sda1

0x4.1指定普通用户

1
2
sudo chown -R ye1s:ye1s /mnt/sda1
sudo umount /mnt/sda1

将硬盘所在的用户和组改为当前用户
重启后,会自动挂载为当前的用户(而非root)

参考文章:
Linux学习之CentOS(八)–Linux系统的分区概念

linux磁盘分区fdisk命令详解
fdisk命令详解

Linux使用parted挂载大于2T磁盘

parted分区对齐

FROM :blog.cfyqy.com | Author:cfyqy

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月6日01:35:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   linux磁盘分区https://cn-sec.com/archives/721949.html

发表评论

匿名网友 填写信息