Total Pageviews

Sunday, 28 October 2012

使用parted为超大磁盘建立GPT格式的分区表

安装CentOS 5.3 时,遇到的问题:
硬件环境:Dell R710,6块SATA 1T容量、7.2k转的磁盘,6i RAID卡。
问题:将前5块盘做的RAID5,共4T左右的存储容量。将第六块盘做的全局热备。
安装CentOS5.3时提示:
Your boot partition is on a disk using the GPT partitioning Scheme but this machines cannot boot using GPT.
解决方法:
1. 通过RAID卡为系统/boot分区建立单独的小容量设备sda,将/dev/sda使用MBR格式的分区表建立分区;将其他空间分配到设备sdb上,使用parted建立GPT格式分区(fdisk不支持GPT格式)。
2. 根据下表,对Linux系统启动过程的分析,判断应该是CentOS 5.3的grub版本过低,从而不支持从GPT分区引导系统,为grub打上 gpt patch 应该同样能解决问题。

MBR格式的分区表,有一定的局限性,比如:最大分区不超过2T,一个MBR只能记录四个主分区(扩展分区+逻辑分区,为扩展解决方案)。
当分区大于2T时,需要使用GPT格式的分区表。
使用parted:
1. 建立分区表
mklabel / mktable  LABEL-TYPE   create a new disklabel (partition table)
注意该操作会破坏分区表,谨慎操作!
LABEL-TYPE 支持以下几种类型(man parted):
bsd”, “dvh”, “gpt”, “loop”, “mac”, “msdos”, “pc98″ or “sun”.
2. 建立分区
mkpart PART-TYPE [FS-TYPE] START END     make a partition
mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system
3. 建立文件系统
mkfs NUMBER FS-TYPE     make a FS-TYPE file system on partititon NUMBER
支持以下几种类型(man parted) fat16″, “fat32″, “ext2″, “linux-swap”  or  “reiserfs”。不支持的文件系统,可以在退出parted之后,使用mkfs来建立。
4. 命名分区
name NUMBER NAME         name partition NUMBER as NAME
例:name 1 /boot
5. 设置分区标志(比如Boot Flag)
toggle [NUMBER [FLAG]]    toggle the state of FLAG on partition NUMBER
toggle 1 boot
toggle 使用类似开关一样的方式设置FLAG,执行一次,修改一次状态。比如当前状态为空时,toggle 1 boot 是将第1个分区设置成boot,再执行一次toggle 1 boot时,boot FLAG被去掉。
也可以使用set 1 boot on/off 来设置。
6.其他命令
help 输出帮助信息
print 输出当前分区信息
参考:
http://baike.baidu.com/view/10817.html
http://en.wikipedia.org/wiki/GUID_Partition_Table
http://zh.wikipedia.org/zh-cn/%E5%85%A8%E5%B1%80%E5%94%AF%E4%B8%80%E6%A8%99%E8%AD%98%E5%88%86%E5%8D%80%E8%A1%A8
parted的用法
http://oss.org.cn/ossdocs/gnu_linux/redhat/rhl-cg-zh_CN-9/ch-disk-storage.html
---------------

Ubuntu 18.04使用GPT分区并挂载硬盘

 进行sudo fdisk -l查看机器上都插了哪些安装盘,看到/dev/sda,并且没有进行分区。

这个时候是没有挂载的,运行如下命令:

sudo parted /dev/sda #进入parted

mklabel gpt #将磁盘设置为gpt格式,

mkpart logical 0 -1 #将磁盘所有的容量设置为gpt格式

print #查看分区结果

quit #退出

root@XXX:~# sudo parted /dev/sda

GNU Parted 3.2

Using /dev/sda

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) mklabel gpt

Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you

want to continue?

Yes/No? no

(parted) mkpart logical 0 -1

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

Ignore/Cancel? ingnore

parted: invalid token: ingnore

Ignore/Cancel? ignore

(parted) print

Model: Phi H1 (scsi)

Disk /dev/sda: 1000GB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Disk Flags:


Number  Start   End     Size    File system  Name     Flags

 1      17.4kB  1000GB  1000GB               logical

(parted) quit

这个时候应该是默认进行分了一个/dev/sda1这个分区

运行sudo mkfs.ext4 -F /dev/sda1 将刚刚分出来的sda1格式化为ext4的格式,然后就可以设置开机自动挂载了。

root@XXX:~# sudo mkfs.ext4 -F /dev/sda1

mke2fs 1.44.1 (24-Mar-2018)

Suggestion: Use Linux kernel >= 3.18 for improved stability of the metadata and journal checksum features.

Creating filesystem with 244190397 4k blocks and 61054976 inodes

Filesystem UUID: d268738c-949e-45a3-9170-1390c49fcac1

Superblock backups stored on blocks:

        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,

        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,

        102400000, 214990848


Allocating group tables: done

Writing inode tables: done

Creating journal (262144 blocks): done

Writing superblocks and filesystem accounting information: done


设置挂载点

sudo mkdir /home/phd1 phd1为新文件名,文件名可自定义

执行 sudo nano /etc/fstab

在文件末尾添加:

/dev/sda1 /home/phd1 ext4 defaults 0 0

使用sudo mount -a即可进行重新挂载。

------------------

相关帖子:
https://briteming.blogspot.com/2013/02/parted.html
https://briteming.blogspot.com/2012/01/gpt.html