1. 程式人生 > >linux下磁碟分割槽,格式化和掛載

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!