linux下磁盤分區,格式化和掛載

按照規定,整個硬盤只能有4個主分區,包括基本分區和擴展分區。擴展分區最多只能有1個,擴展分區裏可以分出多個任意大小的邏輯分區,而基本分區不可再分。

我的硬盤有1T,sda1爲系統盤,有30G,sda2有100G,sda5爲swap分區7.9G,是邏輯分區,sda4是W95 FAT32(LBA)分區7.9G,也是邏輯分區(我也不懂這個盤拿來做什麼,爲什麼會自帶一個這個分區),剩下的800+G是空的。
其中swap分區又叫可交換分區,可以用於自動擴展內存,充當內存 .swap 文件有時會存在這個分區裏。

現在我要刪除那兩個邏輯分區,新建一個500G的基本分區,把剩下的分區建成擴展分區,從裏面分出swap分區。

刪除分區

$ sudo fdisk /dev/sda #進入fdisk工具,輸出各個磁盤狀況

Command (m for help):
$ d #刪除一個分區

Partition number (1-5, default 5):
$ 5 #刪除第5個分區
Partition 5 has been deleted.
這時還沒有保存,輸入w 保存;輸入q不保存直接退出

之後同樣刪除sda4分區

添加分區

$ sudo fdisk /dev/sda #進入fdisk工具,輸出各個磁盤狀況

Command (m for help):
$ n #新建一個分區
之後提示是新建一個基本分區還是擴展分區,p是基本分區,e是擴展分區
Command action:
p primary
e extended

$ p

partition number(3-4):
$ 3

然後就是輸出起始柱面First cylinder (x~xxx, default x):
default就是緊接前一個分區,最好是defualt,直接回車就可以。
輸入結束柱面:Last cylinder or +size or +sizeM or +sizeK (xx~xxx, default xx):+500G #直接輸入想要分區大小即可,例如+50M,+50G

Command (m for help): p #打印分區列表
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 58593279 58591232 28G 83 Linux
/dev/sda2 58593280 268308479 209715200 100G 83 Linux
/dev/sda3 268308480 1316884479 1048576000 500G 83 Linux

Command (m for help): w #保存
看到已經新建出一個sda3,500G,文件格式爲83,linux文件系統。同樣新建一個擴展分區sda4,和邏輯分區sda5(+8G).

將sda5改爲swap文件系統:

更改文件格式類型

$ sudo fdisk /dev/sda

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

若要更改爲swap,則代號爲82
Command (m for help): t #更改文件格式類型

Partition number(1-5,default 5): 5 #要改的分區序號

Hex code (type L to list all codes):82 #格式類型序號

Command (m for help): w #保存,若不保存則q取消操作

這個時候系統會提示分區表還在使用中,還沒更新,不用着急,新的分區還要格式化,掛載才能使用。掛載後重啓即可更新分區表。

格式化

添加分區之後要將磁盤格式化爲某個具體的文件格式,這樣才能正常存儲和讀取。

$ sudo mkfs -t [格式類型] [磁盤路徑] 或

$ sudo mkfs.[格式類型] [磁盤路徑]

我看到我的sda1是ext4的,於是也將分區格式化成ext4的:
$ sudo mkfs -t ext4 /dev/sda3

這樣就完成格式化了!
但是如何能使用磁盤呢?這就要將設備掛載到一個文件夾上,在該文件夾上存取的數據實際上就是在對應磁盤上。

掛載

普通文件系統的掛載

1)即時掛載

例如我要在把sda3掛載在根目錄下/myworld文件夾
$ sudo mkdir /myworld #新建文件夾

$ sudo mount /dev/sda3 /myworld
這樣磁盤就掛載在myworld文件夾裏了!這個文件夾的屬性也可以看到這個文件夾的空間爲500G
但是要是重啓電腦,就要重新掛載,所以要想個辦法開機自動掛載

2)開機自動掛載

打開/etc/fstab文件,修改這個文件可實現開機自動掛載
在最後一行按照格式添加需要掛載的磁盤和信息即可。

《file system》 《mount point》 《type》 《options》 《dump》 《pass》
<設備路徑> <掛載路徑> <文件格式> <權限等選項> <是否需要轉存> <掃描優先級>

i.options
是指定加載該設備的文件系統的特定參數等選項,多個參數由逗號分隔。大多數的系統使用defaults就可以滿足需求,其他常見選項有:
- ro 以只讀模式加載該文件系統
- sync 不對該設備的寫操作進行緩存處理,這可以防止非正常關機時破壞文件系統,但是減低計算機的速度
- user 允許普通用戶加載該文件系統
- quato 強制在該文件上飢溺羞赧感磁盤定額限制
- exec 允許所有用戶運行該文件系統
ii.dump
該選項被dump命令使用檢查一個文件系統是否需要轉存(備份),不需要爲0,需要爲1
iii.pass
該字段被fsck命令用來決定在啓動時需要被掃描的文件系統的順序根文件系統/的值應該爲1,其他文件系統應該爲2.
所以我的fstab文件如下:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=8568de3d-153e-4029-93b4-41deb41c46f6 /               ext4    errors=remoun$
# swap was on /dev/sda5 during installation
UUID=c848fc85-5156-42b0-b111-d1a5164c56e2 none            swap    sw           $
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/sda2       /home/sda2       ext4       auto,users,exec      1       2
/dev/sda3       /myworld         ext4       auto,users,exec      1       2

保存退出,下次開機即可自動掛載,不用再每次用mount命令掛載了

swap分區的掛載

1)創建和激活

swap的掛載與普通文件系統不同,需要創建和激活

$sudo mkswap /dev/sda5 #創建swap

Setting up swapspace version 1, size=…創建完成

$sudo swapon /dev/sda5 #激活swap

系統若提示要輸入y/n,y就可以了,然後會給一個UUID,就激活成功了!記住,要記下這個UUID。

2)開機自動掛載

我的UUID=c848fc85-5156-42b0-b111-d1a5164c56e2,我的磁盤本來有swap,在用來替換上面fatab中的即可。
若本來fstab中沒有掛載過swap,則在fstab中追加:
UUID=xxx none swap sw(或defaults) 0 0
保存,重啓機器即可

檢查分區

分區後完成了上面步驟,若不能正常開機,檢查fstab文件也沒有寫錯,可以使用e2fsck檢查分區

$ sudo e2fsck /dev/sda3
一路yes, 一會兒就修復完成,再掛載,重啓檢查系統,OK!

發佈了39 篇原創文章 · 獲贊 58 · 訪問量 44萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章