parted命令分區--(GPT分區)


MBR分區表(主引導記錄分區表):2.1TB(1TB=1024GB).

①最多支持4個主分區.

②擴展分區只能有一個,並且擴展分區與主分區之和不超過4,擴展分區內不能寫數據,只    能寫入邏輯分區.

③邏輯分區可以有10個.

GPT分區表(也叫GUID分區表,全局唯一標示分區表):9.4ZB(GB-TB-EB-PB-ZB 1024進制),最多支持128個分區.其中1個作為系統保留分區,剩余127個為用戶自定義分區.

 

parted命令直接建立的分區是ext2格式,並且,如果通過mkfs格式化為ext4,parted進行resize動態調整分區大小會失敗.parted命令能夠識別MBR分區表,顯示為msdos.

 

 

[root@localhost ~]# parted            #進入parted命令

GNU Parted 2.1

使用 /dev/sda                    #一定要看清楚,這是主磁盤,不能在這里做分區和格式                                化,不然系統將會無法開機

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

(parted) quit                        #這是輸入命令的位置,立馬使用quit退出

 

[root@localhost ~]# parted /dev/sdb    #使用parted命令必須加入參數

GNU Parted 2.1

使用 /dev/sdb

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

(parted)

 

接下來進行如下幾個實驗:

①建立GPT分區

②已經建立分區進行擴容

③mount掛載

④自動加載GPT分區

 

1.建立GPT分區:

[root@localhost ~]# parted

GNU Parted 2.1

使用 /dev/sda

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

(parted) help

 

接下來會顯示一堆的命令列表和命令內容概括,主要有一下幾個需要知道:

①help    #顯示命令幫助文檔,特別是命令的輸入格式

②mklabel mktable #2個都是建立新的分區表(硬盤標簽),感覺還是mktable更加習慣,好記

③mkfs    #為分區寫入文件系統

④mkpart        #創建新的分區

⑤print    #打印分區信息(已經創建的分區使用這個命令查看)

⑥quit    #退出parted命令

⑦rm    #刪除分區

⑧select    #選擇分區設備,可以切換磁盤

 

(parted) mktable         #新建分區表

新的磁盤標簽類型? gpt #GPT分區表

警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?    #提示"新建分區表會摧毀所有存在磁盤中的數據",是否繼續?

是/Yes/否/No? y             #當然是啦

(parted) print             #顯示結果

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 5369MB

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

Partition Table: gpt            #是不是發現這里由msdos(表示MBR)變成了GPT

 

(parted) mkpart         #新建分區

分區名稱? []? nigulasi1     #自己命名,比如說 尼古拉斯 哈哈

文件系統類型? [ext2]?    #只能默認ext2

起始點? 1     #起始點 1M

結束點? 1G             #結束點1G,注意下一個分區起始點不能小於1000M,也就是說要                        從1001M開始,不然會報錯,告訴你已經分區了

(parted) print                 #顯示結果

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 5369MB

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

Partition Table: gpt

 

Number Start End Size File system Name 標志

1 1049kB 1000MB 999MB ext2         nigulasi1

 

2.已經建立的分區進行動態調整大小

新建一個2G的分區

 

(parted) resize 2         #重新設置分區大小

WARNING: you are attempting to use parted to operate on (resize) a file system.

parted's file system manipulation code is not as robust as what you'll find in

dedicated, file-system-specific packages like e2fsprogs. We recommend

you use parted only to manipulate partition tables, whenever possible.

Support for performing most operations on most types of file systems

will be removed in an upcoming release.

起始點? [1001MB]? #起始點默認回車

結束點? [3000MB]? 2000M     #結束點從3G改為2G(當前默認1G=1000M,方便計算)

警告: A resize operation on this file system will use EXPERIMENTAL code

that MAY CORRUPT it (although no one has reported any such damage yet).

You should at least backup your data first, and run 'e2fsck -f' afterwards.

確認/OK/放棄/Cancel? ok     #輸入ok

(parted) print                 #顯示結果已經縮減大小

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 5369MB

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

Partition Table: gpt

 

Number Start End Size File system Name 標志

1 1049kB 900MB 899MB ext2 nigulasi1

2 1001MB 2000MB 999MB ext2 nigulasi2

(parted) quit        #退出

其實resize按理來說可以變小,也可以變大,但是實際上擴容會報錯,操作了十幾遍只有一遍成功,確實很奇葩,這個parted工具還是不夠完善,比如:操作resize后顯示Warning:

parted's file system manipulation code is not as robust as what you'll find in dedicated, file-system-specific packages like e2fsprogs.

表示parted工具沒有我們想的那么完善......畢竟我們馬上要學習LVM邏輯卷組,以后只能用更高級的LVM,這些就當是回憶科技的過往吧.

 

3.手動掛載

[root@localhost ~]# mkdir /mnt/sdb1        #設置掛載點(掛載點就是已經建立的空目錄)

[root@localhost ~]# mkdir /mnt/sdb2        #設置掛載點,新建了2個分區,需要2個掛載點

[root@localhost ~]# mount /dev/sdb1 /mnt/sdb1/    #把第二塊SCSI硬盤上的第一個分區掛載                                            到/mnt/sdb1目錄上

[root@localhost ~]# mount /dev/sdb2 /mnt/sdb2/    #把第二塊SCSI硬盤上的第二個分區掛載                                            到/mnt/sdb2目錄上

[root@localhost ~]# df -h                #顯示(只能看已經掛載的)磁盤信息,相當於雙擊打                                    開"我的電腦"后的顯示效果

Filesystem Size Used Avail Use% Mounted on

/dev/sda5 9.8G 2.4G 7.0G 26% /

tmpfs 495M 0 495M 0% /dev/shm

/dev/sda1 190M 33M 147M 19% /boot

/dev/sda3 1.9G 3.5M 1.8G 1% /home

/dev/sdb1 804M 13K 761M 1% /mnt/sdb1

/dev/sdb2 893M 13K 845M 1% /mnt/sdb2

 

接下來可以cd /mnt/sdb1/進入該分區,掛載點相當於一個進入磁盤對應分區的對應"門",不同分區不同門,進入這個目錄(也就是掛載點),也就是進入了分區,新建文件,目錄,包括增刪改查都是在第二塊SCSI硬盤的第一個分區上進行操作!

命令行輸入的mount命令是臨時生效的,重啟后將會失效,因此我們要實現永久生效,那就是把"配置信息"或者命令寫入對應文檔,那么來看下一小節.

 

4.自動掛載(/etc/fstab)

Linux開機時查看/etc/fstab這個配置文件,按照配置信息進行自動掛載.

我們需要把新建分區的信息按照對應的格式填入這個文件內,即可達到自動掛載效果.

vi /dec/fstab    #進入配置文檔

#我們拿出一行來進行學習

UUID=b9008873-894b-4586-bbd9-0690a052c5d6 /home ext4 defaults 1 2

#第一列UUID,相當於硬盤分區的"身份證號碼",通過這個號碼識別硬盤,命令行模式下輸入"ll         /dev/disk/by-uuid/"查看對應分區的UUID號碼.

#第二列 掛載點

#第三列 文件系統 的格式

#第四列    默認參數配置,defaults就行,如果有其他功能添加,添加",功能名"即可

#第五列 是否備份,1-備份,0-不備份,默認1即可

#第六列 是開機fsck工具自檢,0-不檢,1-開機時檢測,2-開機后檢測,只有根分區默認開機自檢,        其他分區默認2,有點像360優化開機選項,不然的話拖慢了開機速度.

 

備注:

這里存在一個很大的問題,導致很多人掛載失敗!

首先mount命令默認掛載的時候不需要我們手動配置信息,但是配置文件時需要UUID,這個數據是格式化后生成的,如果只是分區,但是沒有格式化,一種可能是命令/"ll /dev/disk/by-uuid/"結果里沒有你的設備對應的UUID,比如說/dev/sdb2,還有一種可能是顯示的舊UUID,為什么說舊呢?因為你從最近一次文件修改時間可以看出來.

因此你粘貼的UUID絕對是錯的,重啟后系統開機報錯,說找不到UUID對應設備,謹記!

如果開機報錯,修復辦法在上一篇文檔"fdisk創建MBR分區"的末尾.

 

在文檔末尾添加如下內容:

UUID=95988f1e-de1f-47e6-a791-4184a588d7ed /mnt/sdb1 ext2 defaults 1 2

UUID=31f7fdbc-780b-42fd-9d3e-6764edbe68e3 /mnt/sdb2 ext2 defaults 1 2

保存,退出文檔.

重啟.

[root@localhost ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda5 9.8G 2.4G 7.0G 26% /

tmpfs 495M 0 495M 0% /dev/shm

/dev/sda1 190M 33M 147M 19% /boot

/dev/sda3 1.9G 3.5M 1.8G 1% /home

/dev/sdb1 804M 13K 761M 1% /mnt/sdb1

/dev/sdb2 893M 13K 845M 1% /mnt/sdb2

可以看到分區已經自動掛載上來了,哇偶.

    

八.建立swap分區

實驗:

①建立swap分區

②掛載至系統swap中

③自動掛載swap分區

 

在虛擬機里新添加一個空白盤給系統,1G大小足夠了,只是做實驗加入到swap分區中.

記得添加空白盤后用命令"fdisk -l"如果不顯示/dev/sdc,重啟.

 

[root@localhost ~]# fdisk -l

 

Disk /dev/sda: 21.5 GB, 21474836480 bytes    #當前測試Disk /dev/sdc,因此省略顯示a/b盤

Disk /dev/sdb: 5368 MB, 5368709120 bytes

 

Disk /dev/sdc: 1073 MB, 1073741824 bytes    #已經識別第三塊SCSI硬盤了

255 heads, 63 sectors/track, 130 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

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

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

 

1.使用fdisk工具創建swape分區:

 

[root@localhost ~]# fdisk /dev/sdc     #配置第三塊硬盤,要寫命令參數的

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk identifier 0x1becc0ab.

Changes will remain in memory only, until you decide to write them.

After that, of course, the previous content won't be recoverable.

#上面一大堆的警告意思就是:<你添加的空白盤是個三不像,啥格式都沒有,我給你建了個DOS分區表格式,如果你保存,那就這個樣寫入了,寫入后你的數據就沒了>空白盤,不用管.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

 

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

switch off the mode (command 'c') and change display units to

sectors (command 'u').

 

Command (m for help): p    #顯示分區信息,空白盤唄,要啥沒啥.

 

Disk /dev/sdc: 1073 MB, 1073741824 bytes

255 heads, 63 sectors/track, 130 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

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

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x1becc0ab

Device Boot Start End Blocks Id System

 

Command (m for help): t    #直接改系統格式會報錯,因為沒有任何分區啊

No partition is defined yet!

 

Command (m for help): n     #新建分區

Command action

e extended    

p primary partition (1-4)

p                        #輸入p,選擇主分區

Partition number (1-4): 1    #分區號碼,挨着順序來

First cylinder (1-130, default 1):     #第一個柱面,默認就是1,直接回車就行

Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130):     #最后一個柱面,默認回車

Using default value 130

Command (m for help): p    #顯示分區信息

 

Disk /dev/sdc: 1073 MB, 1073741824 bytes

255 heads, 63 sectors/track, 130 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

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

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x1becc0ab

 

Device Boot Start End Blocks Id System

/dev/sdc1 1 130 1044193+ 83 Linux

#最后一列System(系統)的內容是Linux,不行,我們要建swap分區,所以得改!

 

Command (m for help): l        #列舉支持的系統格式(主要記swap是哪個號,恩,82)

0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris

1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-

2 XENIX root 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT-

3 XENIX usr 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT-

4 FAT16 <32M 41 PPC PReP Boot 85 Linux extended c7 Syrinx

5 Extended 42 SFS 86 NTFS volume set da Non-FS data

6 FAT16 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / .

7 HPFS/NTFS 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility

8 AIX 4f QNX4.x 3rd part 8e Linux LVM df BootIt

9 AIX bootable 50 OnTrack DM 93 Amoeba e1 DOS access

a OS/2 Boot Manag 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O

b W95 FAT32 52 CP/M 9f BSD/OS e4 SpeedStor

c W95 FAT32 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs

e W95 FAT16 (LBA) 54 OnTrackDM6 a5 FreeBSD ee GPT

f W95 Ext'd (LBA) 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/

10 OPUS 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b

11 Hidden FAT12 5c Priam Edisk a8 Darwin UFS f1 SpeedStor

12 Compaq diagnost 61 SpeedStor a9 NetBSD f4 SpeedStor

14 Hidden FAT16 <3 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary

16 Hidden FAT16 64 Novell Netware af HFS / HFS+ fb VMware VMFS

17 Hidden HPFS/NTF 65 Novell Netware b7 BSDI fs fc VMware VMKCORE

18 AST SmartSleep 70 DiskSecure Mult b8 BSDI swap fd Linux raid auto

1b Hidden W95 FAT3 75 PC/IX bb Boot Wizard hid fe LANstep

1c Hidden W95 FAT3 80 Old Minix be Solaris boot ff BBT

1e Hidden W95 FAT1

 

Command (m for help): t    #這回有分區了,再次修改系統格式    

Selected partition 1            #只有一個分區,所以沒得選,只能是1

Hex code (type L to list codes): 82    #這里輸入82,意思就是改為swap格式

Changed system type of partition 1 to 82 (Linux swap / Solaris)

 

Command (m for help): p    #顯示結果

 

Disk /dev/sdc: 1073 MB, 1073741824 bytes

255 heads, 63 sectors/track, 130 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

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

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x1becc0ab

 

Device Boot Start End Blocks Id System

/dev/sdc1 1 130 1044193+ 82 Linux swap / Solaris

#這里顯示的效果就是我們要的swap分區了,仔細核對最后一列系統格式,別搞錯了.

#一定一定一定要保存,重要的事情說三遍,輸入 w

Command (m for help): w                #!!!!重要

The partition table has been altered!        #意思就是磁盤的分區表已經改了

Calling ioctl() to re-read partition table.        #調用ioctl()函數可以得到磁盤信息,除非你做                                        開發,不然用不到

Syncing disks.                            #信息已經同步到了磁盤

 

  1. 掛載至swap分區中:

     

    分區后,該做什么?        格式化啊啊啊啊 !

     

    [root@localhost ~]# mkswap /dev/sdc1 #用mkswap格式化/dev/sdc1分區

    Setting up swapspace version 1, size = 1044188 KiB

    no label, UUID=0ccb15e6-af00-475c-93b6-56cd1f543ccb    #說好的格式化后生成UUID,信!

    [root@localhost ~]# free -h        #記錄當前swap分區信息,不然你咋知道增大了沒有?

    total used free shared buffers cached

    Mem: 988M 279M 709M 260K 19M 108M

    -/+ buffers/cache: 150M 837M

    Swap: 7.8G 0B 7.8G

    [root@localhost ~]# swapon /dev/sdc1         #手工把/dev/sdc1加入swap分區,沒報錯

    [root@localhost ~]# free -h        #對照下,恩,確實變大了1G,成功!

    total used free shared buffers cached

    Mem: 988M 279M 708M 260K 19M 108M

    -/+ buffers/cache: 151M 836M

    Swap: 8.8G 0B 8.8G

     

  2. 自動掛載swap

     

    vi /etc/fstab

    文檔末尾加入下面一行信息:

    UUID=0ccb15e6-af00-475c-93b6-56cd1f543ccb swap swap defaults 0 0

    保存退出.

    重啟.

    開機后檢查是否正常:

    Last login: Fri Apr 13 17:12:05 2018 from 192.168.41.1

    [root@localhost ~]# free -h

    total used free shared buffers cached

    Mem: 988M 231M 757M 260K 18M 58M

    -/+ buffers/cache: 153M 834M

    Swap: 8.8G 0B 8.8G

    內存大小直接存7.8G變成了8.8G,不用再手動添加了,哈哈,省事.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM