突然想,能不能直接用mke2fs把它弄成EXT3,代码
代码: 全选
sudo mke2fs -jv /dev/sdb2
大致看了2个命令的e文man,有点疑惑。
是不是mke2fs只管在/dev/sdb2上写好EXT3格式的信息,而没有修改MBR的分区表呢?
如果是这样,先mke2fs建立ext3,再用fdisk直接修改/dev/sdb2的类型为ext3,是否可行?
代码: 全选
sudo mke2fs -jv /dev/sdb2
这个明白了。billbear 写了: 另外,从概念上,mkfs 是操作分区, fdisk 是操作分区表,这是两码事。mkfs 只能在指定分区的范围里活动,不可能跑去分区表的位置写东西。
但对这一点有异议。不凭借分区表里头ID的话,系统怎么知道按照什么格式分析某个分区的数据?难道按照每一种可能的解释都尝试一遍吗?还是说,分区头部信息有一个约定的标准格式定义?ISO?POSIX?billbear 写了: 分区表里设计个 id 确实没啥意思,其实只要给出分区的起止就行了。
反正 linux 下,不管你怎么改分区 id,不管是不是 linux 的分区格式,只要是他认识的,不管是 fat、ntfs、hfs,还是 ext2 ext3 ext4 jfs xfs reiserfs,都不会认错。也没发现改了 id 要花更长时间辨认的,都是瞬间认出。可以认为它直接忽略了分区 id 的信息。justinux 写了:但对这一点有异议。不凭借分区表里头ID的话,系统怎么知道按照什么格式分析某个分区的数据?难道按照每一种可能的解释都尝试一遍吗?还是说,分区头部信息有一个约定的标准格式定义?ISO?POSIX?billbear 写了: 分区表里设计个 id 确实没啥意思,其实只要给出分区的起止就行了。
比尔熊好久没来了,久违啊billbear 写了:反正 linux 下,不管你怎么改分区 id,不管是不是 linux 的分区格式,只要是他认识的,不管是 fat、ntfs、hfs,还是 ext2 ext3 ext4 jfs xfs reiserfs,都不会认错。也没发现改了 id 要花更长时间辨认的,都是瞬间认出。可以认为它直接忽略了分区 id 的信息。justinux 写了:但对这一点有异议。不凭借分区表里头ID的话,系统怎么知道按照什么格式分析某个分区的数据?难道按照每一种可能的解释都尝试一遍吗?还是说,分区头部信息有一个约定的标准格式定义?ISO?POSIX?billbear 写了: 分区表里设计个 id 确实没啥意思,其实只要给出分区的起止就行了。
不过 grub 会在意 id 和实际的不同,会出错。当然 grub 和 linux 是两码事。
而 windows 下,我曾经不慎弄出一个分区 id 是 0b (fat) 的 ntfs 分区,还是 c 盘,至今一直正常运转,我也懒得改它了。
分区 id 真正有用的地方,是用来标识那些“伪分区表”,比如
id 54,EZ-Drive, 很久以前为了突破 bios 能识别的硬盘大小限制(512兆) Maxtor 搞的,在原本 mbr 的地方塞进了一些处理磁盘 I/O 的代码和一个伪分区表,指示整个硬盘为一个 id 为 54 的单一分区,真 mbr 和真分区表被放到下一个 sector。
id 55,OnTrackDM6,另一次突破 bios 磁盘限制的补丁。这一次的代码用去了 63 个扇区,真 mbr 被从 sector 0 挪到 sector 63。
id ee,GPT 分区表的伪 MBR。