Linux 下使用硬盘需要创建新分区吗?还是说直接用根硬盘设备?

2022-05-27 09:36:57 +08:00
 villivateur

我现在有一块新硬盘,需要插在一个 Linux 服务器上做数据盘。

假设这个盘被映射到 /dev/sdb 。初始化 GPT 分区表后,我有两个选择:

  1. 直接 mkfs /dev/sdb
  2. 先用 fdisk 创建一个 /dev/sdb1 ( sdb1 使用全部的容量),然后再 mkfs /dev/sdb1

这两种方案有区别吗?一年前我看各种教程,都是方案 2 ,但是最近我看 AWS 挂载新硬盘的教程,推荐方案 1 。

似乎方案 2 会浪费磁盘起始位置的一小部分空间。

1338 次点击
所在节点    问与答
14 条回复
shervy
2022-05-27 10:45:17 +08:00
你不 fdisk 怎么 mkfs
mingtdlb
2022-05-27 10:47:14 +08:00
我都用 1 ,主要是懒的分...

“AWS 挂载新硬盘的教程,推荐方案 1 ” 链接发下
SMGdcAt4kPPQ
2022-05-27 10:48:17 +08:00
Windows 下读取需要分区表,Linux 不需要
MBR 浪费空间少
TigerJie
2022-05-27 10:50:55 +08:00
mingtdlb
2022-05-27 10:57:12 +08:00
@TigerJie 我指的是文档,想看下~
mingtdlb
2022-05-27 10:59:20 +08:00
@mingtdlb 找到文档了,没说为啥
HeyWeGo
2022-05-27 11:11:55 +08:00
硬盘今后如果不会有在 windows 下读取数据的需求,方案 1 没问题。

我之前就是因为不知道 windows 需要分区表才能读盘,linux 下未分区然后 mkfs 成了 ntfs ,结果挂到 windows 下依然读不出。后来 linux 下先分一个区再 mkfs ntfs 就可以直接挂到 windows 下正常读取了。那么点空间没啥纠结了
villivateur
2022-05-27 11:19:36 +08:00
Arnie97
2022-05-27 12:51:43 +08:00
技术上可以让文件系统直接从 /dev/sdb 第一个扇区开始。但是何苦呢,基本断了将来分区的后路了,兼容性也会略微降低… 我喜欢把不同的目录分到不同的区,这样备份起来也方便,log 所在的分区写满了也不会让 db 无法写入,大文件所在的分区格式化参数也可以跟零碎文件所在的分区分别对待。

> 似乎方案 2 会浪费磁盘起始位置的一小部分空间

相比整个磁盘的容量,分区表占用空间完全可以忽略不计(主要是为了 SSD 对齐擦写 block 选择故意空出来几 MB 空间,否则 MBR 分区表也就 512 字节)。inode 占的空间超过分区表百倍,你要是真差这点空间,应该调整 inode 参数而不是打分区表的主意…
adoal
2022-05-27 13:36:35 +08:00
用 1 的风险是如果有特殊情况挂在别的地方,有不小概率会被当成没初始化的硬盘误操作。
jim9606
2022-05-27 14:42:13 +08:00
建议用 2 。GPT 分区表(及保护 MBR )算上备份块撑死就几 KB ,但可以防止被很多软件误认为是空盘。
cheng6563
2022-05-27 14:44:25 +08:00
直接 btrfs 玩子卷
mingl0280
2022-05-27 14:49:14 +08:00
@villivateur aws 是虚拟块设备,没必要加额外的分区表(物理层设备已经分区了)。
你自己用的物理设备,不分区的麻烦比分区的多,所以最好加。
julyclyde
2022-05-30 11:11:53 +08:00
有一种说法:
建议即使使用整个容量,也分“一个”区
这样可以避免 fdisk -l 的时候被识别为未使用的盘,被别人误操作

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/855580

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX