磁盤分區(qū)詳解

全新硬盤裝系統(tǒng)之前,必須對其進(jìn)行分區(qū),硬盤分區(qū)初始化的格式主要有兩種:傳統(tǒng)的 MBR(Master Boot Record ,即主引導(dǎo)記錄) 和新的 GPT( GUID Partition Table)。后者功能更強(qiáng)大,解決了 MBR 的許多限制。

MBR

MBR 早在 1983 年 IBM PC DOS 2.0 中就已經(jīng)提出。之所以叫“主引導(dǎo)記錄”,是因?yàn)樗挥隍?qū)動器開始部分的主引導(dǎo)扇區(qū),是硬盤的第一扇區(qū)。它由三個部分組成:Boot loader、硬盤分區(qū)表 DPT 和結(jié)束標(biāo)志字。

201610170953378340.png
  • 第一部分為 Boot loader,位于主引導(dǎo)扇區(qū)的前 446 個字節(jié),偏移地址為 0000H--0088H,是一小段代碼,用于加載硬盤上其他分區(qū)上更大的加載器(如操作系統(tǒng)的啟動加載器)。如果你安裝了 Windows,Windows 啟動加載器的初始信息就放在這個區(qū)域里。如果 MBR 的信息被覆蓋導(dǎo)致 Windows不能啟動,你就需要使用啟動優(yōu)盤中 DiskGenius 軟件提供的重建 MBR 功能來使其恢復(fù)正常。如果你安裝了 Linux,則這里通常存儲的是 GRUB 啟動加載器的初始信息。該區(qū)域主要提供以下三個功能:
    • 提供啟動引導(dǎo)菜單:使用者可以在該菜單中選擇啟動不同的開機(jī)項(xiàng)。在系統(tǒng)未加載前按下主板快速啟動的快捷鍵就可以看到該菜單;
    • 指向開機(jī)所需的核心文件來啟動操作系統(tǒng);
    • 還可將開機(jī)引導(dǎo)權(quán)交給其它 loader。每個分區(qū)也擁有自己的啟動扇區(qū)(Boot sector),開機(jī)引導(dǎo)程序除了可以裝在這里外,還可裝在各分區(qū)的啟動扇區(qū)。
  • 第二部分為 Disk partition table 區(qū)(DPT分區(qū)表),占 64 個字節(jié),偏移地址為 01BEH--01FDH,記錄整個磁盤分區(qū)的狀態(tài),每 16 個字節(jié)標(biāo)記一個分區(qū),因此最多可記錄 4 個分區(qū)。分區(qū)的單位是柱面,每個 16 字節(jié)的記錄區(qū)記錄了該分區(qū)從開始到結(jié)束的柱面號。所謂的分區(qū)操作即是對分區(qū)表進(jìn)行設(shè)置,當(dāng)文件系統(tǒng)要寫入磁盤時,首先會參考分區(qū)表。在 MBR 分區(qū)表中,邏輯塊地址采用 32 位二進(jìn)制數(shù)表示,因此一共可表示 2 的 32 次方個邏輯塊地址,所以,MBR 硬盤最大分區(qū)容量僅為 2.2 TB = 2^32 × 512 bytes;
  • 第三部分是結(jié)束標(biāo)志字,占 2 個字節(jié),偏移地址為 01FEH--01FFH。固定為 55AA,是檢驗(yàn)主引導(dǎo)記錄是否有效的標(biāo)志。該標(biāo)志錯誤將導(dǎo)致系統(tǒng)不能啟動。

上面所說的分區(qū)為主分區(qū)(primary partition)。一個磁盤或者 RAID 卷上只能有 4 個可啟動的主分區(qū)。如果 MBR 分區(qū)方案需要使用 4 個以上的分區(qū),那就需將至少一個主分區(qū)作為擴(kuò)展分區(qū)(extend partition),然后在該擴(kuò)展分區(qū)上面建立若干個邏輯分區(qū)(logic partition)。擴(kuò)展分區(qū)可以被看作是容納邏輯分區(qū)的容器。硬盤上最多只能有 1 個擴(kuò)展分區(qū)(操作系統(tǒng)的限制)且其本身不能格式化,必須劃分邏輯分區(qū)后才能使用,但擴(kuò)展分區(qū)中的邏輯分區(qū)沒有數(shù)量限制。擴(kuò)展分區(qū)也被看作是一個主分區(qū),因此,在存在擴(kuò)展分區(qū)的情況下最多只能再建 3 個主分區(qū)(3 個主分區(qū)加 1 個可包含多個邏輯分區(qū)的擴(kuò)展分區(qū))。

擴(kuò)展分區(qū)中邏輯驅(qū)動器的引導(dǎo)記錄是鏈?zhǔn)降摹C恳粋€邏輯分區(qū)都有一個和 MBR 結(jié)構(gòu)類似的擴(kuò)展引導(dǎo)記錄(EBR),其分區(qū)表的第一項(xiàng)指向該邏輯分區(qū)本身的引導(dǎo)扇區(qū),第二項(xiàng)指向下一個邏輯驅(qū)動器的 EBR,分區(qū)表第三、第四項(xiàng)沒有用到。

BIOS

BIOS(Basic Input Output System)即基本輸入輸出系統(tǒng) ,它是個人電腦啟動時加載的第一個軟件。其實(shí),它是一個存儲在計(jì)算機(jī)內(nèi)主板 BOIS 芯片上的程序,它保存著計(jì)算機(jī)最重要的基本輸入輸出的程序、加電自檢程序(Power On Self Test,簡稱 POST 自檢)和系統(tǒng)啟動程序等。

一般在計(jì)算機(jī)啟動時按 F2 或者 Delete 即可進(jìn)入 BIOS 程序進(jìn)行設(shè)置(一些特殊機(jī)型按 F1、Esc、F12 等進(jìn)行設(shè)置)。 其主要功能是為計(jì)算機(jī)提供最底層的、最直接的硬件設(shè)置和控制。

UEFI

UEFI 的全稱是 Unified Extensible Firmware Interface,意即統(tǒng)一可擴(kuò)展固件接口,它是基于 EFI 1.10 標(biāo)準(zhǔn)為基礎(chǔ)發(fā)展而來,值得注意的是在 UEFI 正式確立之前,Intel 就開始積極推進(jìn)傳統(tǒng) BIOS 的升級方案,并最終確立了過渡方案 EFI 標(biāo)準(zhǔn),直到 2007 年 Intel 將 EFI 標(biāo)準(zhǔn)的改進(jìn)與完善工作交給 Unified EFI Form 進(jìn)行全權(quán)負(fù)責(zé),EFI 標(biāo)準(zhǔn)則正式更名為 UEFI。UEFI 其實(shí)和 BIOS 是同一類程序,是隨著硬件發(fā)展而出現(xiàn)的 BIOS 升級版,被看做是有近20多年歷史的傳統(tǒng)的(Legacy)BIOS 的繼任者。UEFI 一般就是指 UEFI BIOS 環(huán)境,而和 UEFI 比較時的所說的 BOIS 則是指傳統(tǒng)的 BIOS 環(huán)境。

相比 BIOS,UEFI 的一些優(yōu)點(diǎn)在于:

  1. 高效開發(fā)。BIOS 開發(fā)一般采用匯編語言,代碼多是硬件相關(guān)的代碼。而在 UEFI 中,絕大部分代碼采用 C 語言編寫,UEFI 應(yīng)用程序和驅(qū)動甚至可以使用 C++ 編寫。UEFI通過固件操作系統(tǒng)接口(BS 和 RT 服務(wù))為 OS 和 OS 加載器屏蔽了底層硬件細(xì)節(jié),使得 UEFI 上層應(yīng)用可以方便重用。
  2. 可擴(kuò)展性。UEFI 的模塊化設(shè)計(jì)在邏輯上分為硬件控制與 OS(操作系統(tǒng))軟件管理兩部分,硬件控制為所有 UEFI 版本所共有,而 OS 軟件管理其實(shí)是一個可編程的開放接口。借助這個接口,主板廠商可以實(shí)現(xiàn)各種豐富的功能。比如我們熟悉的各種備份及診斷功能可通過 UEFI 加以實(shí)現(xiàn),主板或固件廠商可以將它們作為自身產(chǎn)品的一大賣點(diǎn)。UEFI 也提供了強(qiáng)大的聯(lián)網(wǎng)功能,其他用戶可以對你的主機(jī)進(jìn)行可靠的遠(yuǎn)程故障診斷,而這一切并不需要進(jìn)入操作系統(tǒng)。
  3. 縮短啟動和休眠恢復(fù)時間。UEFI 可運(yùn)行于 32 位或 64 位模式,突破了傳統(tǒng) 16 位代碼的尋址能力,達(dá)到處理器的最大尋址,此舉克服了 BIOS 代碼運(yùn)行緩慢的弊端。
  4. 啟動的安全性。當(dāng)系統(tǒng)的安全啟動功能被打開后,UEFI 在執(zhí)行應(yīng)用程序和驅(qū)動前會先檢測程序和驅(qū)動的證書,僅當(dāng)證書被信任時才會執(zhí)行這個應(yīng)用程序或驅(qū)動。UEFI 應(yīng)用程序和驅(qū)動采用 PE/COFF 格式,其簽名放在簽名塊中。
  5. 更大的磁盤容量和分區(qū)數(shù)量。傳統(tǒng) MBR 分區(qū)最大只能支持 2.2 TB 的硬盤和 4 個主分區(qū),而 UEFI 規(guī)范之一的 GPT 分區(qū)格式,則可以支持過百 TB 大小的硬盤和 100 個主分區(qū)。
  6. 兼容性。與 BIOS 不同的是,UEFI 體系的驅(qū)動并不是由直接運(yùn)行在 CPU 上的代碼組成的,而是用 EFI Byte Code(EFI字節(jié)代碼)編寫而成的。EFI Byte Code 是一組類似于 Java 類文件的虛擬機(jī)器指令,必須在 UEFI 驅(qū)動運(yùn)行環(huán)境下被解釋運(yùn)行,由此保證了充分的向下兼容性。
  7. 鼠標(biāo)操作。UEFI 內(nèi)置圖形驅(qū)動功能,可以提供一個高分辨率的彩色圖形環(huán)境,用戶進(jìn)入后能用鼠標(biāo)點(diǎn)擊調(diào)整配置,一切就像操作 Windows 系統(tǒng)下的應(yīng)用軟件一樣簡單。

相比傳統(tǒng)的 BIOS,UEFI 還提供了文件系統(tǒng)的支持,它能夠直接讀取 FAT、FAT32 分區(qū)中的文件,例如華碩、華擎等主板在 UEFI 環(huán)境下更新 BIOS 就可以直接讀取 U 盤中的 BIOS 及其他文件,另外新的 UEFI 主板基本都提供了截屏功能,這些截屏圖片都可以存儲在U盤當(dāng)中。

UEFI 還有一個重要特性就是在 UEFI 下運(yùn)行應(yīng)用程序,這類程序文件通常以 efi 結(jié)尾。利用 UEFI 可以直接識別 FAT 分區(qū)中的文件,又可直接在其中運(yùn)行應(yīng)用程序。我們就可以將 Windows 安裝程序做成 efi 類型應(yīng)用程序,然后把它放到任意FAT 分區(qū)中直接運(yùn)行即可。

當(dāng)然由于 UEFI 主要由高級語言編寫(C語言),相比于傳統(tǒng) BIOS 的匯編語言,UEFI BIOS 在安全防護(hù)性方面相比傳統(tǒng) BIOS 要弱,比較容易遭到病毒的攻擊,安全性有待進(jìn)一步提升。不過在圖形化界面、應(yīng)用程序擴(kuò)展面前,UEFI BIOS 還是非常成功的。

現(xiàn)在,多數(shù)主板為了兼容 MBR 分區(qū)表,一般會提供 Legacy BIOS 和 UEFI BIOS 啟動模式選項(xiàng),如果要使用 UEFI 模式安裝操作系統(tǒng),就必須開啟 UEFI 模式。UEFI 模式可切換回 BIOS 模式,而僅有 BIOS 模式時無法切換為 UEFI 模式。

目前 64bit Windows Vista、7、8、8.1、10 都已經(jīng)支持 GPT 分區(qū)表,而 Windows 8、8.1、10 都已經(jīng)原生支持 UEFI,安裝這些系統(tǒng)的時候:只要硬盤設(shè)置為 GPT 分區(qū)表 主板設(shè)置為 UEFI 啟動后,就可以直接開始安裝操作系統(tǒng)了。自 Win8 發(fā)布以來,新出廠的預(yù)裝 Win8/Win8.1 的電腦都默認(rèn)在 UEFI 式下啟動操作系統(tǒng)。

而對于 Windows Vista、7 系統(tǒng),就需要手動添加 UEFI 支持,我們可以找一份 Windows 8 或者 10 安裝鏡像,從安裝文件中提取 Bootmgfw.efi 文件,重命名為 BOOTX64.EFI,拷貝到 Win7 安裝文件的 \EFI\Boot\ 下,如果沒有 BOOT 文件夾就新建一個。

GPT

GPT 的全稱是 Globally Unique Identifier Partition Table,意即 GUID 分區(qū)表。UEFI BOIS 將逐漸取代 Legacy BOIS ,而 GPT 也將逐漸取代 MBR。UEFI 和 GPT 是相輔相成的,二者缺一不可,要想使用 GPT 分區(qū)表則必須是 UEFI BIOS 環(huán)境。

與支持最大 2T 磁盤和 RAID 卷且至多有 4 個主分區(qū)的 MBR 分區(qū)表相比, GPT 分區(qū)表能支持最大 18 EB(Exabytes)磁盤和 RAID 卷。并且磁盤和 RAID 卷的分區(qū)數(shù)沒有上限,只受到操作系統(tǒng)限制(由于分區(qū)表本身需要占用一定空間,最初規(guī)劃硬盤分區(qū)時,留給分區(qū)表的空間決定了最多可以有多少個分區(qū))。比如,在 Windows 系統(tǒng)上,由于系統(tǒng)的限制 GPT 最多只能支持 128個 磁盤分區(qū),基本可以滿足所有用戶的存儲需求。在每一個分區(qū)上,這個標(biāo)識符是一個隨機(jī)生成的字符串,可以保證為地球上的每一個 GPT 分區(qū)都分配完全唯一的標(biāo)識符。

201610170953379290_001.jpg

在安全性方面,GPT 分區(qū)表也進(jìn)行了全方位改進(jìn)。在早期的 MBR 磁盤上,分區(qū)和啟動信息是保存在一起的。如果這部分?jǐn)?shù)據(jù)被覆蓋或破壞,事情就麻煩了。相對的,GPT 在整個磁盤上保存多個這部分信息的副本,因此它更為健壯,并可以恢復(fù)被破壞的這部分信息。GPT 還為這些信息保存了循環(huán)冗余校驗(yàn)碼(CRC)以保證其完整性和正確性——如果數(shù)據(jù)被破壞,GPT 會發(fā)覺這些破壞,并從磁盤上的其他地方進(jìn)行恢復(fù)。

MBR or GPT

GPT 相對于誕生于 MS-DOS 時代的 MBR 而言,有許多優(yōu)點(diǎn)。在做出選擇前,需要考慮如下內(nèi)容:

  • 如果使用 GRUB legacy 作為 bootloader,必須使用 MBR
  • 如果使用傳統(tǒng)的 BIOS,并且雙啟動中包含 Windows (無論是 32 位版還是 64位 版),必須使用 MBR。
  • 如果使用 UEFI 而不是 BIOS,并且雙啟動中包含 Windows 64 位版,必須使用 GPT。
  • 非常老的機(jī)器需要使用 MBR,因?yàn)?BIOS 可能不支持 GPT.
  • 如果不屬于上述任何一種情況,可以隨意選擇使用 GPT 還是 MBR。由于 GPT 更先進(jìn),建議選擇 GPT。
  • 建議在使用 UEFI 的情況下選擇 GPT,因?yàn)橛行?UEFI firmware 不支持從 MBR 啟動。
  • 為了使 GRUB 從一臺有 GPT 分區(qū)的基于 BIOS 的系統(tǒng)上啟動,需要創(chuàng)建一個 BIOS 啟動分區(qū), 這個分區(qū)和 /boot 沒關(guān)系,僅僅是 GRUB 使用,不要建立文件系統(tǒng)和掛載。

以下為主流操作系統(tǒng)對 GPT 的支持情況列表。

Cg-4zFTdcXWIU7ABAAWGKozbRYUAAUsRQLKPWsABYZC801.jpg

更詳細(xì)的支持列表可參考維基百科。

對于新平臺用戶(Intel 6 系以后 /AMD 900 系列以后和 A 系列)來說,都強(qiáng)烈推薦使用 GPT 分區(qū)表格式。目前包括 Win Vista、Win7、Win8、Win8.1、Win10 已經(jīng)都支持讀取和使用 GPT 分區(qū)表。而對于使用 Win8、Win8.1、Win10 的用戶,換用 GPT 后開機(jī)啟動速度也可以進(jìn)一步得到顯著提升。

選擇引導(dǎo)方式和分區(qū)格式

由于現(xiàn)在剛出的新電腦基本都是 UEFI + GPT 的,如果要更換系統(tǒng)就必須按照 GPT 分區(qū)格式 + UEFI 引導(dǎo)的方式去安裝。但如果想使用以前的 MBR 方式去安裝(比如安裝 Ghost 系統(tǒng))那就只能將轉(zhuǎn)換硬盤的分區(qū)格式轉(zhuǎn)換為 MBR 、修改系統(tǒng)引導(dǎo)方式為 Legacy、重新分區(qū)再安裝。

如果在分區(qū)格式為 MBR 的硬盤上安裝較新的 Windows 系統(tǒng)時忘了把之前 MBR 分區(qū)格式改為 GPT,然后在選擇 Windows 安裝位置時不能繼續(xù),如下圖所示。

1306Windows-8-2013-06-08-20-13-39.png

這個時候就需要將硬盤分區(qū)格式修改為 GPT,修改系統(tǒng)引導(dǎo)方式為 UEFI、重新分區(qū)再安裝。

查看操作系統(tǒng)的引導(dǎo)方式

Windows 系統(tǒng)

方法一

如果你知曉 GPT 與 UEFI 啟動之間的關(guān)系,那么你可能知道,Windows 想要從 GPT 硬盤引導(dǎo),就必須以 UEFI 方式啟動(反之則不成立)。在磁盤管理(桌面右鍵計(jì)算機(jī)快捷方式——>管理——>磁盤管理)中選擇一塊磁盤,在其上面右鍵,點(diǎn)擊“屬性”菜單項(xiàng),然后選擇“卷”標(biāo)簽頁,即可看一下分區(qū)類型,如果是 GPT,那么電腦肯定就是 UEFI 啟動了。

20150508_141539_737.png

方法二

該方法適用于 Win 8 及更高版本的 Windows 系統(tǒng)。按 Win+R 打開運(yùn)行,輸入 msinfo32,回車查看系統(tǒng)信息。在 BIOS 模式中如果顯示“傳統(tǒng)”,表示系統(tǒng)啟動方式為 Legacy BIOS;如果為 UEFI,則顯示 UEFI。

uefi-type.png-e7147a-1638071543246-0
uefi-type.png
Linux 系統(tǒng)

方法一

可以通過查看是否存在 /sys/firmware/efi 目錄就可以判斷出是否為 UEFI 引導(dǎo)方式。

方法二

也可以通過安裝 efibootmgr 程序,然后執(zhí)行 sudo efibootmgr 命令即可查看 Linux 系統(tǒng)是否支持 UEFI 引導(dǎo)方式。

終極查看方法

下面介紹一種適用于任何操作系統(tǒng)的查看即修改方法。

在系統(tǒng)開始加載前按下熱鍵(一般為 Del、F2 等)進(jìn)入 BIOS。一般該功能一般位于 Boot 相關(guān)的菜單下,不同主板的電腦操作方式大同小異。如下圖所示,可以查看當(dāng)前的引導(dǎo)方法,也可以修改引導(dǎo)方式。

20160512_172140_341.png

注意:UEFI 引導(dǎo)方式需要主板芯片組支持,如果你在 BIOS 設(shè)定中沒有找到相應(yīng)內(nèi)容,那么很可能就是你的主板并不支持 UEFI 引導(dǎo)方式。近些年的新主板一般都支持 UEFI。

不同電腦的快捷啟動鍵有所不同。

Windows 系統(tǒng)設(shè)置硬盤分區(qū)

分區(qū)的容量和數(shù)量根據(jù)硬盤數(shù)量、容量、類型和使用習(xí)慣而定。分區(qū)容量小了、數(shù)量多了會導(dǎo)致各分區(qū)之間轉(zhuǎn)移文件很麻煩,分區(qū)容量大了、數(shù)量少了會增加文件丟失的風(fēng)險(比如經(jīng)常直接斷電而非正常關(guān)機(jī)或其他原因?qū)е碌挠脖P故障),單個分區(qū)損壞則該分區(qū)中所有文件丟失。

如果你的硬盤夠大、夠多,比如容量為 1 TB,甚至有多個 1TB 硬盤,那么可以將 Windows 系統(tǒng)所在分區(qū)設(shè)置為 100 GB,剩下的空間可以按軟件安裝、媒體存儲、文檔辦公、文件備份等用途來分出合適容量、數(shù)量的分區(qū)。如果使用 128 GB 或 256 GB 的 SSD + HDD 組合的模式,那么可以將整個 SSD 分為一個分區(qū),將 Windows 和應(yīng)用軟件都安裝在整個 SSD 的分區(qū)上以便加快開機(jī)和應(yīng)用軟件的啟動速度。

如果 Windows 系統(tǒng)使用 MBR 分區(qū)格式,一般都是只劃分一個主分區(qū)給系統(tǒng),剩余的部分全部劃入擴(kuò)展分區(qū)。

通過安裝 Windows 時的 diskpart 工具

  1. 安裝系統(tǒng)時在系統(tǒng)版本選擇界面按下 Shift+F10 快捷鍵調(diào)出命令提示符,如下圖所示:

    20160512_172343_387.png
  2. 輸入 diskpart 命令后按回車鍵,進(jìn)入 DISKPART 工具,如下圖所示。

  3. 輸入 list disk 命令后按回車鍵,查看電腦當(dāng)前可用硬盤,編號為 0、1、2。。。,如果你只有一塊硬盤,則只有 0 號磁盤;有兩塊硬盤,則還會顯示 1 號磁盤,以此類推,如下圖所示。

  1. 輸入 select disk xx 為上述硬盤編號),選擇你要進(jìn)行分區(qū)操作的硬盤,如果只有一塊硬盤,輸入select disk 0 后按回車鍵即可,如下圖所示。
20160512_172423_739.png
  1. 執(zhí)行 clean 命令清除該硬盤上的所有分區(qū)(記得備份數(shù)據(jù),新硬盤無需此步驟),此時會清除所有硬盤數(shù)據(jù),如下圖所示。
  2. 如果是按照 GPT 分區(qū)格式安裝操作系統(tǒng),則執(zhí)行 convert gpt 命令將該硬盤轉(zhuǎn)換成 GPT 分區(qū)格式,如下圖所示。
20160512_172707_714.png

當(dāng)然,如果是按 MBR 分區(qū)格式安裝系統(tǒng),也可以創(chuàng)建 MBR 分區(qū)格式,使用 convert mbr 命令即可。

  1. 創(chuàng)建 EFI 分區(qū),執(zhí)行 create partition efi size=200(分區(qū)大小為 200 MB),如下圖所示。

EFI 系統(tǒng)分區(qū),即 EFI system partition,簡寫為 ESP。ESP 是一個 FAT16 或 FAT32 格式的物理分區(qū),但是其分區(qū)標(biāo)識是 EF (十六進(jìn)制) 而非常規(guī)的 0E 或 0C,因此,該分區(qū)在 Windows 操作系統(tǒng)下一般是不可見的。支持 EFI 模式的電腦需要從 ESP 啟動系統(tǒng),EFI 固件可從 ESP 加載 EFI 啟動程序或者應(yīng)用。

僅當(dāng)使用 UEFI 模式以及 GPT 分區(qū)表的時候需要 EFI 系統(tǒng)分區(qū)(又稱 ESP),對于 GPT 分區(qū)表,EFI 分區(qū)是必需的,它用來存放操作系統(tǒng)的引導(dǎo)器(loader),而 MSR 不是必需的,僅當(dāng)使用 Windows 系統(tǒng)時才需要 MSR 保留分區(qū)。

  1. 創(chuàng)建 MSR 分區(qū),執(zhí)行 create partition msr size=200(微軟系統(tǒng)保留分區(qū)),如下圖所示。

MSR 分區(qū)(Microsoft Reserved Partition,縮寫 MSR)即 Microsoft 保留分區(qū),是每個在 GUID 分區(qū)表上的 Windows 操作系統(tǒng)(Win 7 及以上)都要求的分區(qū)。系統(tǒng)組件可以將 MSR 分區(qū)的部分分配到新的分區(qū)以供它們使用。

MSR 分區(qū)的大小會因 GPT 磁盤的大小不同而發(fā)生變化。對于小于 16 GB 的磁盤,MSR 分區(qū)為 32 MB。對于大于 16 GB 的磁盤,MSR 分區(qū)為 128 MB。MSR 分區(qū)在“磁盤管理”中不可見,用戶也無法在 MSR 分區(qū)上存儲或刪除數(shù)據(jù)。

對于在 GPT 磁盤上的 Windows 操作系統(tǒng),MSR 分區(qū)是必須保留的,不可刪除(無法啟動可能是由于用 part1,part2… 等表示的分區(qū)因?yàn)?MSR 分區(qū)的刪除而改變導(dǎo)致的)。而對于 GPT 磁盤中的其他操作系統(tǒng),如 Linux、Mac 等則不受影響。

可以使用命令:create partition msr [size=<n>][offset=] [noerr] 創(chuàng)建 MSR 分區(qū),單位為 MB。

用 Win8 系統(tǒng)安裝版分區(qū)時,系統(tǒng)自動劃分出“分區(qū) 1、2、3”,它們是 Win 8 的特有分區(qū)。其中 300 MB 為恢復(fù)區(qū),100 MB 為系統(tǒng)分區(qū),128 MB 為 MSR 分區(qū)。

  1. 創(chuàng)建主分區(qū),執(zhí)行 create partition primary size=xxx(單位為 MB,具體大小根據(jù)你的要求而定)(創(chuàng)建結(jié)束后,可執(zhí)行 active 命令設(shè)置活動分區(qū),然后可順便執(zhí)行 format quick 進(jìn)行快速格式化。在 MBR 格式下,若要創(chuàng)建擴(kuò)展分區(qū),則執(zhí)行:create partition extended size=n ,如果你不需要建立其他主分區(qū),可把剩余空間全部劃分為擴(kuò)展分區(qū)。在擴(kuò)展分區(qū)中創(chuàng)建邏輯分區(qū),則執(zhí)行:create partition logical size=n ??山⒍鄠€邏輯分區(qū),總?cè)萘恳∮诘扔跀U(kuò)展分區(qū),但最好等于擴(kuò)展分區(qū)大小,以免浪費(fèi)空間。也可以在每個邏輯分區(qū)創(chuàng)建完畢后順便執(zhí)行 format quick,進(jìn)行快速格式化。分區(qū)結(jié)束后,如果忘記格式化,可執(zhí)行 select partition x,然后為該分區(qū)執(zhí)行 format quick 快速格式化)。
  2. 再次輸入 list disk 命令后按回車鍵可查看已建立的分區(qū)列表。如下圖所示。

注意:這里系統(tǒng)安裝過程采用虛擬機(jī)模擬,模擬硬盤為 60 GB,因此主分區(qū)大小設(shè)定 30 GB 僅作為操作演示。

可在進(jìn)入 DISKPART 工具后輸入 help 查看有關(guān) diskpart 命令的詳細(xì)信息。

  1. 如果還有剩余空間,可繼續(xù)重復(fù)執(zhí)行上述命令來創(chuàng)建新的分區(qū)(注意修改具體數(shù)值)。但建議用戶創(chuàng)建完系統(tǒng)分區(qū)后就退出命令提示符(輸入 exit 后回車)繼續(xù)安裝系統(tǒng),畢竟這種方式不容易估算剩下的硬盤空間大小,進(jìn)入安裝位置選擇界面后可以進(jìn)一步劃分剩余空間,如下圖所示。也可以在安裝后,進(jìn)入系統(tǒng)磁盤管理中進(jìn)行分配。
20160512_173005_16.png

這種的方法不需要任何第三方工具,屬于最基本方法。好處就在于操作簡便直觀,缺點(diǎn)在于命令不好記,整個硬盤需要全部格式,數(shù)據(jù)無法保留。所以,在操作之前,務(wù)必對于硬盤上的重要數(shù)據(jù)提前備份到其他存儲設(shè)備上。

使用 Win7/Win8.1/Win10 安裝程序自帶的分區(qū)工具

  1. 使用原版系統(tǒng)安裝盤(非 Ghost 版)引導(dǎo)電腦。
  2. 以未分區(qū)硬盤為例,選中未分配空間(多硬盤用戶需要按照總大小和可用空間區(qū)分好目標(biāo)硬盤),點(diǎn)擊“新建”,如下圖 所示。
20161101_141513_121.jpg
  1. 給出分區(qū)大小,單位 MB,比如要想分 30 GB 的區(qū),就寫上“30000”,如下圖所示。
20161101_141821_811.jpg
  1. 分區(qū)會格式化硬盤,將會清除所有文件。所以重裝系統(tǒng)之前做好文件備份。記住,Windows 桌面上的文件是位于 C 盤的。
20161101_142452_166.jpg

使用 GPT 分區(qū)系統(tǒng)會要求創(chuàng)建 MSR 和 EFI 分區(qū),默認(rèn)為 128 MB 和 100 MB,用于保留空間和存放引導(dǎo)程序等。

  1. 同理按照上述方法劃分其他區(qū)域,如果使用的是 MBR 分區(qū)方式,那么在此處最多只能分出 4 個主分區(qū),但如果用 GPT 分區(qū),數(shù)量就不限。如下圖所示。
20161101_142437_607.jpg
  1. 分區(qū)后可以在此格式化,也可以直接點(diǎn)“下一步”,系統(tǒng)會自動格式化選中的系統(tǒng)分區(qū);其他未格式化的分區(qū)可以在系統(tǒng)安裝結(jié)束后手動格式化。這里的格式化創(chuàng)建的是 NTFS 文件系統(tǒng)。
20161101_143201_749.jpg

在此處格式化會給出提示,在確認(rèn)硬盤中并無文件,或者文件已備份的情況下點(diǎn)擊“確定”開始格式化。

實(shí)際上只有遵循 UEFI 規(guī)范的主板才能按照 efi/boot/bootx64.efi 路徑啟動 Windows 安裝程序,大多數(shù)主板都是遵循這一規(guī)范的。如果不遵循這一規(guī)范,那么你需要手動選擇從該文件啟動,或者需要在 UEFI Shell 中以命令的方式啟動 bootx64.efi。

使用 DiskGenius 分區(qū)軟件

這款工具很多資深用戶并不陌生,常見于某些國產(chǎn)改版 PE 系統(tǒng)中,當(dāng)然這些系統(tǒng)中還有其他強(qiáng)大的硬盤操作工具。關(guān)于該軟件的全部功能用法可以參考其官網(wǎng)幫助信息。

創(chuàng)建 GPT 分區(qū)
  1. 打開 DiskGenius 工具后就可以很明顯看到當(dāng)前硬盤分區(qū)情況,如下圖所示。
20161101_151041_857.jpg
  1. 如果現(xiàn)有分區(qū)不滿意,可以刪掉后重新分,如下圖所示。
  1. 刪掉所有已有分區(qū)后,重新建立分區(qū)會首先提示是否新建 ESP 和 MSR 分區(qū),其中 ESP 分區(qū)是必須要建立的(默認(rèn) 100 MB 即可),否則 Windows 安裝程序無法在選擇安裝位置后開始安裝(UEFI + GPT 用戶直接使用安裝盤分區(qū)會自動創(chuàng)建所需分區(qū),不會出現(xiàn)影響安裝的問題),如下圖所示。
20161101_151814_137.jpg
  1. 建立完上述輔助分區(qū)后,就可以正式建立主分區(qū),方法同之前介紹的大同小異,無非就是給出分區(qū)大小,如下圖所示。
20161101_155717_591.jpg

如果是為 SSD 新建分區(qū),要勾選 “對齊到下列扇區(qū)數(shù)的整數(shù)倍”,并在 “扇區(qū)數(shù)” 下拉菜單中選擇 “4096”(如上圖),以便滿足所謂的 “4K 對齊” 條件,這有利于充分發(fā)揮 SSD 的性能優(yōu)勢(原版系統(tǒng)盤安裝程序分區(qū)時會自動設(shè)置 “4K 對齊”,無需手動設(shè)置)。可以通過 DiskGenius 的“工具”菜單中的“分區(qū)4K扇區(qū)對齊監(jiān)測”菜單項(xiàng)查看 SSD 是否已經(jīng) 4K 對齊(最后一列顯示為“Y”表示已對齊)。

  1. 按照上述方法新建分區(qū),完成后要“保存更改”,此時程序會詢問你是否順便格式化這些分區(qū),點(diǎn)擊“是”即可開始格式化,完成后這些分區(qū)就可以使用了,如下圖所示。
20161101_160447_982.jpg
創(chuàng)建 MBR 分區(qū)

這種分區(qū)表和 GPT 比起來在分區(qū)方式上有一定差異,下面具體說明一下:

  1. 可直接新建主分區(qū)和擴(kuò)展分區(qū),不會提示 MSR 等輔助分區(qū)建立。
20161101_163048_328.jpg
  1. 主分區(qū)用于安裝系統(tǒng)和引導(dǎo)系統(tǒng);擴(kuò)展分區(qū)及下屬的邏輯分區(qū)用于存儲數(shù)據(jù),GPT 不具備上述結(jié)構(gòu)。
20161101_174631_178.jpg
  1. 主分區(qū)最多能建立 4 個,擴(kuò)展分區(qū)只有一個,下屬邏輯分區(qū)數(shù)量不限,主分區(qū)和擴(kuò)展分區(qū)總和不超過 4 個,邏輯分區(qū)總量必須小于等于擴(kuò)展分區(qū)容量。
20161101_163140_269.jpg

DiskGenius 軟件目前支持 NTFS、FAT32、FAT16、exFAT、EXT2、EXT3、EXT4 等文件系統(tǒng)的格式化。

安裝 Windows 和 Linux 雙系統(tǒng)時,后安裝的引導(dǎo)加載程序可能會覆蓋之前系統(tǒng)的引導(dǎo)加載程序,這就會導(dǎo)致之前安裝的系統(tǒng)的無法被加載。CentOS 7(最近的 Ubuntu) 使用 GRUB2 作為引導(dǎo)加載程序。該引導(dǎo)加載程序是計(jì)算機(jī)啟動后首先運(yùn)行的程序,負(fù)責(zé)操作系統(tǒng)的加載及傳輸控制。GRUB2 可以兼容所有操作系統(tǒng),同時還可以在不支持的操作系統(tǒng)中使用鏈?zhǔn)捷d入將控制權(quán)轉(zhuǎn)給其他操作系統(tǒng)。如果先安裝 Windows 再安裝使用 GRUB2 引導(dǎo)的 Linux,將會使用 GRUB2 引導(dǎo)雙系統(tǒng)。而如果先安裝 Linux 再安裝 Windows,除了 Win10 可以識別出 Linux 系統(tǒng)的引導(dǎo)程序外,其他版本的 Windows 系統(tǒng)都會覆蓋已安裝 Linux 系統(tǒng)的引導(dǎo)程序,這種情況下可以在 Windows 下使用 EasyBCD 軟件在修改引導(dǎo)加載程序。

Linux 系統(tǒng)設(shè)置硬盤分區(qū)

一開始,你必須在存儲設(shè)備上創(chuàng)建分區(qū)來容納文件系統(tǒng)。分區(qū)可以是整個硬盤,也可以是部分硬盤,以容納虛擬目錄的一部分。在 Linux 系統(tǒng)中,硬盤分區(qū)常見的名稱格式如下:

  • /dev/hd[a-h]n:hd 表示 IDE 接口的硬盤;
  • /dev/sd[a-p]n:sd 表示 SATA 接口和 SCSI 接口的硬盤;
  • /dev/ed[a-d]n:ed 表示 ESDI 接口的硬盤;
  • /dev/xd[ab]n:xd 表示 XT 接口的硬盤。

中括號中的字母表示驅(qū)動器的檢測順序,第一個驅(qū)動器是a,第二個驅(qū)動器是b,以此類推。n 表示分區(qū)號,在 MBR 分區(qū)的硬盤中,1-4 是主分區(qū)(或者擴(kuò)展分區(qū)),邏輯分區(qū)號只能從分區(qū)號 5 開始,習(xí)慣上創(chuàng)建主分區(qū) sda1 到 sda3(最多也只能創(chuàng)建三個主分區(qū)),然后建立一個擴(kuò)展分區(qū) sda4(創(chuàng)建三個主分區(qū)之后默認(rèn)只能創(chuàng)建擴(kuò)展分區(qū)),后續(xù)創(chuàng)建的分區(qū) sda5,sda6 等只能為邏輯分區(qū),默認(rèn)會被包含在 sda4 擴(kuò)展分區(qū)中。

在安裝 CentOS 7 時,選擇“Install CentOS 7”,然后按下“Tab”,在屏幕下方的“quiet”后面輸入一個空格加“inst.gpt”來使用 GPT 分區(qū)。否則,默認(rèn)選擇的 MBR 分區(qū)。

創(chuàng)建 MBR 分區(qū)

fdisk 工具用來在存儲設(shè)備上的創(chuàng)建 MBR 分區(qū)。它是個交互式程序,允許輸入命令來逐步完成硬盤分區(qū)操作。 該命令的用法如下:

fdisk [options] <disk>    變更分區(qū)表
fdisk [options] -l <disk> 列出分區(qū)表
fdisk -s <partition>      顯示分區(qū)的塊大小

可用的選項(xiàng)如下:

-b <size>:扇區(qū)大小(512, 1024, 2048, 或 4096);
-c[=<mode>]:兼容模式:`dos`或`nondos`(默認(rèn)模式);
-h:打印該幫助文本;
-u[=<unit>]:打印單位:`cylinders`或`sectors`(默認(rèn)單位);
-v:打印程序的版本;
-C <number>指定柱面數(shù);
-H <number>:指定頭數(shù);
-S <number>:指定每個磁道的扇區(qū)數(shù)。

可以使用 -l 選項(xiàng)而不指定設(shè)備名來查看當(dāng)前所有磁盤分區(qū)及映射的邏輯卷。也可以指定設(shè)備名稱來查看指定磁盤的分區(qū)列表。

[root@localhost ~]# ll /dev/sd*
brw-rw----. 1 root disk 8, 0 May  8 07:05 /dev/sda
brw-rw----. 1 root disk 8, 1 May  8 07:05 /dev/sda1
brw-rw----. 1 root disk 8, 2 May  8 07:05 /dev/sda2
[root@localhost ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 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
Disk label type: dos
Disk identifier: 0x000d5723

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    38780927    18877440   8e  Linux LVM

Disk /dev/mapper/cl-root: 10.7 GB, 10737418240 bytes, 20971520 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


Disk /dev/mapper/cl-swap: 2147 MB, 2147483648 bytes, 4194304 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


Disk /dev/mapper/cl-home: 6442 MB, 6442450944 bytes, 12582912 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


[root@localhost ~]# fdisk -l /dev/sda

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 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
Disk label type: dos
Disk identifier: 0x000d5723

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    38780927    18877440   8e  Linux LVM
[root@localhost ~]# fdisk -l /dev/sda1

Disk /dev/sda1: 524 MB, 524288000 bytes, 1024000 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

[root@localhost ~]# fdisk -l /dev/sda2

Disk /dev/sda2: 19.3 GB, 19330498560 bytes, 37754880 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

[root@localhost ~]# 

可以在 VMware 中虛擬機(jī)關(guān)機(jī)之后“編輯虛擬機(jī)設(shè)置”,點(diǎn)擊“硬盤”,然后選擇“擴(kuò)展”可以將原有硬盤擴(kuò)容,還可以選擇“添加”來添加新的硬盤。下面我們演示了將虛擬機(jī)原有硬盤擴(kuò)容了 20 GB 左右,同時又添加了一塊容量為 20 GB 左右的新硬盤。

[root@localhost vincent]# ll /dev/sd*
brw-rw----. 1 root disk 8,  0 May  8 07:35 /dev/sda
brw-rw----. 1 root disk 8,  1 May  8 07:35 /dev/sda1
brw-rw----. 1 root disk 8,  2 May  8 07:35 /dev/sda2
brw-rw----. 1 root disk 8, 16 May  8 07:44 /dev/sdb
[root@localhost vincent]# fdisk -l

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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


Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 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
Disk label type: dos
Disk identifier: 0x000d5723

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    38780927    18877440   8e  Linux LVM

Disk /dev/mapper/cl-root: 10.7 GB, 10737418240 bytes, 20971520 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


Disk /dev/mapper/cl-swap: 2147 MB, 2147483648 bytes, 4194304 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


Disk /dev/mapper/cl-home: 6442 MB, 6442450944 bytes, 12582912 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

[root@localhost vincent]# fdisk -l /dev/sdb

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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

[root@localhost vincent]# fdisk -l /dev/sda

Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 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
Disk label type: dos
Disk identifier: 0x000d5723

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    38780927    18877440   8e  Linux LVM
[root@localhost vincent]# fdisk -l /dev/sda1

Disk /dev/sda1: 524 MB, 524288000 bytes, 1024000 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

[root@localhost vincent]# fdisk -l /dev/sda2

Disk /dev/sda2: 19.3 GB, 19330498560 bytes, 37754880 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

[root@localhost vincent]# 

從上面的執(zhí)行結(jié)果可以看出,在擴(kuò)容原有硬盤和新增硬盤之后,原有的 /dev/sda 容量增加了,同時新增了一個 /dev/sdb 的未分區(qū)的新磁盤。

使用 fdisk 命令后直接指定要分區(qū)的存儲設(shè)備的設(shè)備名(需要使用超級用戶)就可以進(jìn)入 fdisk 工具的交互式操作模式了。下面展示了該命令在 CentOS 發(fā)行版中的使用情景。如果這是你第一次給該存儲設(shè)備分區(qū), fdisk 會提示你設(shè)備上沒有可識別的分區(qū)表。

[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x5ecbc139.

Command (m for help): 

根據(jù)提示,輸入 m 命令可以查看可用的交互式命令

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): 

各命令解釋如下:

a 切換是否可啟動的標(biāo)識`on`或`off`(toggle a bootable flag)
b 編輯 bsd 磁盤標(biāo)簽(disklabel)
c 切換 dos 兼容性標(biāo)識(toggle the dos compatibility flag)
d 刪除分區(qū)
l 列出可用的系統(tǒng)ID
m 顯示該命令菜單
n 添加一個新分區(qū)
o 創(chuàng)建一個新的DOS分區(qū)表
p 顯示當(dāng)前分區(qū)表
q 退出,不保存更改
s 為Sun Unix系統(tǒng)創(chuàng)建一個新的空磁盤標(biāo)簽(create a new empty Sun disklabel)
t 修改分區(qū)的系統(tǒng)ID
u 改變使用的存儲單位
v 驗(yàn)證分區(qū)表
w 將分區(qū)表寫入磁盤
x 高級功能(experts only)

實(shí)際上在日常工作中用到的只有幾個基本命令。 可以用 p 命令將一個存儲設(shè)備的詳細(xì)信息顯示出來。

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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
Disk label type: dos
Disk identifier: 0x5ecbc139

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): 

輸出顯示這個存儲設(shè)備有約 21.5 GB 的空間。存儲設(shè)備明細(xì)的列表列出這個設(shè)備所有分區(qū)。這個例子中的輸出中沒有顯示任何分區(qū),所以設(shè)備還未分區(qū)。 下一步,可以使用 n 命令在該存儲設(shè)備上根據(jù)提示創(chuàng)建新的分區(qū)。使用 n 命令需要先指定創(chuàng)建的分區(qū)類型(p 表示主分區(qū),e 表示擴(kuò)展分區(qū)),然后指定分區(qū)號,最后分別指定分區(qū)的起始柱面和結(jié)束柱面(也可以根據(jù)提示指定增加的柱面數(shù)或增加的容量大小來代替)。

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
Partition number (1-4, default 1): 
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +2G
Partition 1 of type Linux and of size 2 GiB is set

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): 
Using default response p
Partition number (2-4, default 2): 
First sector (4196352-41943039, default 4196352): 
Using default value 4196352
Last sector, +sectors or +size{K,M,G} (4196352-41943039, default 41943039): +2G
Partition 2 of type Linux and of size 2 GiB is set

Command (m for help): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): 
Using default response p
Partition number (3,4, default 3): 
First sector (8390656-41943039, default 8390656): 
Using default value 8390656
Last sector, +sectors or +size{K,M,G} (8390656-41943039, default 41943039): +2G
Partition 3 of type Linux and of size 2 GiB is set

Command (m for help): 
Command (m for help): n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): 
Using default response e
Selected partition 4
First sector (12584960-41943039, default 12584960): 
Using default value 12584960
Last sector, +sectors or +size{K,M,G} (12584960-41943039, default 41943039): +2G
Partition 4 of type Extended and of size 2 GiB is set

Command (m for help): n
All primary partitions are in use
Adding logical partition 5
First sector (12587008-16779263, default 12587008): 
Using default value 12587008
Last sector, +sectors or +size{K,M,G} (12587008-16779263, default 16779263): +2G
Value out of range.
Last sector, +sectors or +size{K,M,G} (12587008-16779263, default 16779263): +1G
Partition 5 of type Linux and of size 1 GiB is set

Command (m for help): n
All primary partitions are in use
Adding logical partition 6
First sector (14686208-16779263, default 14686208): 
Using default value 14686208
Last sector, +sectors or +size{K,M,G} (14686208-16779263, default 16779263): +500M
Partition 6 of type Linux and of size 500 MiB is set

Command (m for help):

在上面的示例中,我們依次根據(jù)默認(rèn)參數(shù)先創(chuàng)建了三個主分區(qū),第四個分區(qū)默認(rèn)只能選擇擴(kuò)展分區(qū),后續(xù)只能在擴(kuò)展分區(qū)中創(chuàng)建邏輯分區(qū)。主分區(qū)可以被文件系統(tǒng)直接格式化,而擴(kuò)展分區(qū)則只能容納其他邏輯分區(qū)。使用 p 命令可以查看該磁盤上已創(chuàng)建分區(qū)的列表(這些分區(qū)僅保存到內(nèi)存中,還未實(shí)際執(zhí)行)。

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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
Disk label type: dos
Disk identifier: 0x21258da3

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    12584959     2097152   83  Linux
/dev/sdb4        12584960    16779263     2097152    5  Extended
/dev/sdb5        12587008    14684159     1048576   83  Linux
/dev/sdb6        14686208    15710207      512000   83  Linux

Command (m for help): 

從輸出中現(xiàn)在可以看到,該存儲設(shè)備上所有分區(qū)列表。 其中,Id 列定義了 Linux 怎么對待該分區(qū)。 fdisk 允許創(chuàng)建多種分區(qū)類型。使用 l 命令列出可用的不同類型及其十六進(jìn)制碼。

Command (m for help): l

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1 80  Old Minix      

Command (m for help): 

默認(rèn)類型是 Linux 文件系統(tǒng)類型,對應(yīng)的十六進(jìn)制碼為 83。如果你想為其他文件系統(tǒng)創(chuàng)建一個分區(qū)(比如 Solaris 類型的分區(qū)),只要通過 t 交互命令指定一個分區(qū)類型的十六進(jìn)制代碼即可。

Command (m for help): t
Partition number (1-6, default 6): 5
Hex code (type L to list all codes): bf
Changed type of partition 'Linux' to 'Solaris'

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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
Disk label type: dos
Disk identifier: 0x21258da3

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    12584959     2097152   83  Linux
/dev/sdb4        12584960    16779263     2097152    5  Extended
/dev/sdb5        12587008    14684159     1048576   bf  Solaris
/dev/sdb6        14686208    15710207      512000   83  Linux

Command (m for help): 

創(chuàng)建了想要的分區(qū)之后就可以用 w 命令將更改保存到存儲設(shè)備上。

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# ll /dev/sd*
brw-rw----. 1 root disk 8,  0 May  8 07:35 /dev/sda
brw-rw----. 1 root disk 8,  1 May  8 07:35 /dev/sda1
brw-rw----. 1 root disk 8,  2 May  8 07:35 /dev/sda2
brw-rw----. 1 root disk 8, 16 May  8 22:49 /dev/sdb
brw-rw----. 1 root disk 8, 17 May  8 22:49 /dev/sdb1
brw-rw----. 1 root disk 8, 18 May  8 22:49 /dev/sdb2
brw-rw----. 1 root disk 8, 19 May  8 22:49 /dev/sdb3
brw-rw----. 1 root disk 8, 20 May  8 22:49 /dev/sdb4
brw-rw----. 1 root disk 8, 21 May  8 22:49 /dev/sdb5
brw-rw----. 1 root disk 8, 22 May  8 22:49 /dev/sdb6
[root@localhost ~]# 

存儲設(shè)備的分區(qū)信息被寫入分區(qū)表中, Linux 系統(tǒng)通過 ioctl() 調(diào)用來獲知新分區(qū)的出現(xiàn)。 設(shè)置好分區(qū)之后,可以使用Linux 文件系統(tǒng)對其進(jìn)行格式化。有些發(fā)行版和較舊的發(fā)行版在生成新分區(qū)之后并不會自動提醒 Linux 系統(tǒng)。如果是這樣的話,你要么使用 partprob 或 hdparm 命令(參考相應(yīng)的手冊頁),要么重啟系統(tǒng),讓系統(tǒng)讀取更新過的分區(qū)表。

當(dāng)然,我們可以通過 d 命令來刪除已創(chuàng)建的分區(qū)。

[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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
Disk label type: dos
Disk identifier: 0x21258da3

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    12584959     2097152   83  Linux
/dev/sdb4        12584960    16779263     2097152    5  Extended
/dev/sdb5        12587008    14684159     1048576   bf  Solaris
/dev/sdb6        14686208    15710207      512000   83  Linux

Command (m for help): d
Partition number (1-6, default 6): 5
Partition 5 is deleted

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 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
Disk label type: dos
Disk identifier: 0x21258da3

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux
/dev/sdb2         4196352     8390655     2097152   83  Linux
/dev/sdb3         8390656    12584959     2097152   83  Linux
/dev/sdb4        12584960    16779263     2097152    5  Extended
/dev/sdb5        14686208    15710207      512000   83  Linux

Command (m for help): 

從刪除結(jié)果來看,Solaris 類型的 /dev/sdb5 分區(qū)被刪除了,后面的 /dev/sdb6 就變成了新的 /dev/sdb5。

創(chuàng)建 GPT 分區(qū)

如果要創(chuàng)建 GPT 分區(qū),可以使用 parted 命令實(shí)現(xiàn)。parted 命令可用來操作磁盤分區(qū),它支持多種分區(qū)格式,包括 MS_DOS 和 GPT。該命令語法如下。

parted [options] [device [command [options...]...]]
  • [options]:該命令支持的命令行選項(xiàng)如下,
-l, --list:列出所有設(shè)備上的分區(qū)信息;
-m, --machine:顯示機(jī)器可解析的輸出;
-i, --interactive:在必要時,提示用戶;
-s, --script:從不提示用戶;
-a, --align alignment-type:為新創(chuàng)建的分區(qū)設(shè)置對齊,可用的對齊類型有:none(使用磁盤類型允許的最小對齊方式)、cylinder(將分區(qū)對齊到柱面)、minimal(使用根據(jù)磁盤拓?fù)湫畔⒔o定的最小對齊方式。這種設(shè)置將使用磁盤提供的布局信息來對齊邏輯分區(qū)表地址到磁盤上實(shí)際的物理塊。最小值是對齊分區(qū)到物理塊最小對齊所需的,這可以避免性能下降)、optimal(使用由磁盤拓?fù)湫畔⒔o定最佳的對齊,將對齊到物理塊大小的整數(shù)倍以保證最佳性能);
-h, --help:顯示幫助信息;
-v, --version:顯示版本。
  • [device]:所操作的塊設(shè)備。如果沒有指定,parted 命令將使用它找到的第一個塊設(shè)備,也可以在進(jìn)入交互模式后執(zhí)行 select 設(shè)備路徑 命令來選擇操作指定的磁盤 ;
  • [command [options]:指定要執(zhí)行的命令。如果沒有指定命令,parted 將給出命令提示。

使用 parted -l 不指定設(shè)備名稱,我們可以查看當(dāng)前可操作的磁盤分區(qū)信息。

[root@localhost ~]# parted -l
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 42.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  525MB   524MB   primary  ext4         boot
 2      525MB   19.9GB  19.3GB  primary               lvm


Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start  End  Size  Type  File system  Flags


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/cl-home: 6442MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags: 

Number  Start  End     Size    File system  Flags
 1      0.00B  6442MB  6442MB  ext4


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/cl-swap: 2147MB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags: 

Number  Start  End     Size    File system     Flags
 1      0.00B  2147MB  2147MB  linux-swap(v1)


Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/cl-root: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags: 

Number  Start  End     Size    File system  Flags
 1      0.00B  10.7GB  10.7GB  ext4

直接使用 parted 命令會進(jìn)入交互模式,然后輸入 help 命令將顯示基本的幫助信息,也可以輸入 help COMMAND 查看某個交互式命令 COMMAND 的幫助信息,

[root@localhost ~]# parted
GNU Parted 3.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help                                                             
  align-check TYPE N                       check partition N for TYPE(min|opt) alignment
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free
        space, all found partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  disk_set FLAG STATE                      change the FLAG on selected device
  disk_toggle [FLAG]                       toggle the state of FLAG on selected device
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information
        of GNU Parted
(parted) version

GNU Parted 3.1

Copyright (C) 1998 - 2006 Free Software Foundation, Inc.
This program is free software, covered by the GNU General Public License.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

(parted) 

對于這些交互式命令解釋如下,

align-check TYPE N:檢查分區(qū) N 的對齊類型 TYPE(min|opt);
help [COMMAND]:打印一般幫助,或指定命令 COMMAND 的幫助:檢查分區(qū)的對齊;
mklabel,mktable LABEL-TYPE:創(chuàng)建新的磁盤標(biāo)簽(分區(qū)表);
mkpart PART-TYPE [FS-TYPE] START END:創(chuàng)建一個分區(qū);
name NUMBER NAME:將分區(qū)號為 NUMBER 的分區(qū)命名為 NAME;
p, print [devices|free|list,all|NUMBER]:顯示分區(qū)表、可用設(shè)備、剩余空間、所有發(fā)現(xiàn)的分區(qū)、或特定的分區(qū);
quit:退出交互模式;
rescue START END:挽救 START 和 END 附近丟失的分區(qū);
rm NUMBER:刪除分區(qū)號為 NUMBER 的分區(qū);
select DEVICE:選擇要編輯的設(shè)備;
disk_set FLAG STATE:設(shè)置所選設(shè)備的 FLAG 狀態(tài)為 STATE;
disk_toggle [FLAG]:切換所選設(shè)備的 FLAG 狀態(tài);
set NUMBER FLAG STATE:設(shè)置分區(qū)號為 NUMBER 的分區(qū)的 FLAG 狀態(tài)為 STATE;
toggle [NUMBER [FLAG]]:將分區(qū)號為 NUMBER 的分區(qū)的 FLAG 狀態(tài)切換為 FLAG;
u, unit UNIT:設(shè)置默認(rèn)的單位為 UNIT,為 s, B, kB, MB(默認(rèn)), GB, TB, compact, cyl, chs, %, kiB, MiB, GiB, TiB 之一;
version:顯示版本號和版權(quán)信息。

如果要對新增的磁盤創(chuàng)建 GPT 分區(qū),則先要使用 mklabel 命令創(chuàng)建 GPT 磁盤標(biāo)簽(分區(qū)表)。

(parted) select /dev/sdb        # 首先選擇或切換要操作的磁盤設(shè)備
Using /dev/sdb
(parted) help mklabel 
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)

        LABEL-TYPE is one of: aix, amiga, bsd, dvh, gpt, mac, msdos, pc98, sun, loop
(parted) mklabel gpt                                                      
Warning: 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? Yes
(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start  End  Size  File system  Name  Flags

(parted)

mklabel 命令的幫助信息表示: LABEL-TYPE 為 aix, amiga, bsd, dvh, gpt, mac, msdos, pc98, sun, loop 之一。新磁盤標(biāo)簽(分區(qū)表)是沒有分區(qū)的,該命令從技術(shù)上不會毀掉你分區(qū)上的數(shù)據(jù),但數(shù)據(jù)基本上卻不能使用,可以使用 rescue 命令來恢復(fù)任意分區(qū)或者操作之前做好備份。從上面 print 命令的打印結(jié)果來看,我們已經(jīng)創(chuàng)建了 gpt 分區(qū)表。

當(dāng)然,也可以使用 mklabel 命令創(chuàng)建 msdoc 磁盤標(biāo)簽(分區(qū)表),這樣后續(xù)創(chuàng)建的分區(qū)就是 MSR 分區(qū)了。所以 parted 命令也可以用來創(chuàng)建 MSR 分區(qū)。

接下來就可以通過 mkpart 命令創(chuàng)建分區(qū)了。

(parted) help mkpart 
  mkpart PART-TYPE [FS-TYPE] START END     make a partition

        PART-TYPE is one of: primary, logical, extended
        FS-TYPE is one of: btrfs, nilfs2, ext4, ext3, ext2, fat32, fat16, hfsx, hfs+, hfs, jfs,
        swsusp, linux-swap(v1), linux-swap(v0), ntfs, reiserfs, hp-ufs, sun-ufs, xfs, apfs2,
        apfs1, asfs, amufs5, amufs4, amufs3, amufs2, amufs1, amufs0, amufs, affs7, affs6, affs5,
        affs4, affs3, affs2, affs1, affs0, linux-swap, linux-swap(new), linux-swap(old)
        START and END are disk locations, such as 4GB or 10%.  Negative values count from the
        end of the disk.  For example, -1s specifies exactly the last sector.
        
        'mkpart' makes a partition without creating a new file system on the partition.  FS-TYPE
        may be specified to set an appropriate partition ID.
(parted) mkpart                                                         
Partition name?  []? first_part                                           
File system type?  [ext2]? ext4                                           
Start? 1                                                                  
End? 2048M
(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name        Flags
 1      1049kB  2048MB  2047MB               first_part

(parted) 

需要指定分區(qū)類型為 PART-TYPE,為 primary, logical, extended 之一,extended 和 logical 僅用在 msdos 和 mips 磁盤標(biāo)簽。如果是創(chuàng)建 GPT 磁盤標(biāo)簽,那么就沒有這三者的概念了,該項(xiàng)就變成了為分區(qū)指定任意名稱(Name),指定文件系統(tǒng)為 FS-TYPE(從 mkpart 之后 print 的結(jié)果來看,即使指定該項(xiàng)也不會創(chuàng)建文件系統(tǒng),可指定其值來為分區(qū)設(shè)置一個合適的文件系統(tǒng)簽名。在創(chuàng)建不同的實(shí)際文件系統(tǒng)時或創(chuàng)建物理卷時,該簽名會被擦除),指定起始和結(jié)束位置為 START 和 END,START、END 均為磁盤起始位置的偏移量,可以為其指定數(shù)字時帶上單位,如果僅指定數(shù)字而沒有單位,則其默認(rèn)單位可以由 unit 命令來指定。負(fù)值表示從磁盤結(jié)束位置向前計(jì)算位置,比如-1s倒數(shù)第一個扇區(qū)。

上面的操作也可以一行就可以完成,

(parted) mkpart second_part 2048MB 4096MB                                 
(parted) print                                                            
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name         Flags
 1      1049kB  2048MB  2047MB               first_part
 2      2048MB  4096MB  2048MB               second_part

(parted) 

當(dāng)然,也可以通過僅一行的命令行模式來完成上面的操作,

parted /dev/sda mklabel gpt mkpart third_part ext3 4096MB 5120MB 

請注意 parted 命令是輸入命令回車后即可生效,不像 fdisk 一樣要最后確認(rèn)執(zhí)行才生效。使用 parted 命令創(chuàng)建分區(qū)之后,有的發(fā)行版可能不會自動識別新建的分區(qū),需要重新讀取 /etc/fstab 文件識別新的分區(qū)或重啟。

/etc/mtab 文件由操作系統(tǒng)維護(hù),處于安全考慮不要手動修改該文件,/etc/fstab 定義了應(yīng)該掛載什么,在系統(tǒng)啟動時會被讀取,

我們也可以 rm 命令刪除創(chuàng)建的分區(qū),這里就不詳述了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容