歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu 格式化硬盤

Ubuntu 格式化硬盤

日期:2017/2/28 15:46:32   编辑:Linux教程

現在在 Ubuntu 中進行硬盤格式化是很簡單的事,
只要使用“磁碟公用程式”就能達到 分割/格式化 的動作。
(Gnome3 Classic:“應用程式”→“附屬應用程式”→“磁碟公用程式”

直到幾天前我才想嘗試著以命令列執行格式化的作業,
原本只想將分割成 3 個槽區的第 1 分割區格式化而已,
但一不小心就把全硬盤中的分割區給刪除了… = 0 =|||

首先執行的命令是 lshw,
它能顯示電腦中的硬件相關資訊,
以下是我的執行結果:

www.linuxidc.com @linuxidc:~$ sudo lshw -C disk
*-disk
description: ATA Disk
product: ST9500420AS
vendor: Seagate
physical id: 0
bus info: scsi@0:0.0.0
logical name: /dev/sda
version: 0003
serial: 5VJ6L9ZE
size: 465GiB (500GB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 signature=e1882325
*-cdrom
description: DVD-RAM writer
product: DVDRAM GT32N
vendor: HL-DT-ST
physical id: 1
bus info: scsi@1:0.0.0
logical name: /dev/cdrom
logical name: /dev/cdrw
logical name: /dev/dvd
logical name: /dev/dvdrw
logical name: /dev/scd0
logical name: /dev/sr0
version: AS01
capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
configuration: ansiversion=5 status=nodisc
*-disk:0 description: SCSI Disk physical id: 0.0.0 bus info: scsi@6:0.0.0 logical name: /dev/sdb size: 149GiB (160GB) capabilities: partitioned partitioned:dos configuration: signature=789c84b0

接著執行 fdisk 指令,
該指令主要是用來做分割之用,
但分割之前可以先加上 -l 的參數來看一下到底原始的分割配置是什麼:
sudo fdisk -l
或是指定裝置位置:
sudo fdisk -l /dev/sdb

Command (m for help): p


Disk /dev/sdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 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: 0x789c84b0


所用裝置 Boot Start End Blocks Id System
/dev/sdb1 1 15665 125829081 83 Linux
/dev/sdb2 15666 19457 30459240 83 Linux



這次想做的分割是外接式硬盤,
所以執行 fdisk 指定外接式硬盤的位置:
sudo fdisk /dev/sdb

這個時候會進入 fdisk 的命令模式,
如果有需要說明的可以按下 m 或輸入 help 顯示:
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
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)
這裡我只有用到 d、n、p、t、w 幾項而已…
刪除分割區:d
列出已知分區型態:l
建立新的分割區:n
顯示分割區列表:p
(很重要,得先看過列表再做刪除等動作,不然操作者會有淒慘的叫聲…)

Command (m for help): p


Disk /dev/sdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 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: 0x789c84b0


所用裝置 Boot Start End Blocks Id System
/dev/sdb1 1 15665 125829081 83 Linux
/dev/sdb2 15666 19457 30459240 83 Linux
最後確定了並做寫入動作則輸入:w
不做寫入並退出請輸入:q


光有分割區還不夠,
接著得進行格式化的作業,
利用 mkfs. 的指令可以對磁區進行多種格式化的功能(如格式化成 NTFS):
www.linuxidc.com @linuxidc:~$ sudo mkfs.  #按一下 tab 鍵自動調出能格式化的格式
mkfs.bfs mkfs.ext3 mkfs.minix mkfs.reiserfs
mkfs.cramfs mkfs.ext4 mkfs.msdos mkfs.vfat
mkfs.ext2 mkfs.ext4dev mkfs.ntfs
www.linuxidc.com @linuxidc:~$ sudo mkfs.ntfs /dev/sdb1 
#最後補上位置就能進行格式化
接著得等上好一段時間讓它完成作業。

但光是如此,
進入 Windows 中使用“我的電腦”也是看不到這個被格式化成 NTFS 的分割區,
如果開啟碟碟管理工具只會看到一個沒有標籤的裝置,
所以回到 Ubuntu 中的終端機用 fdisk -l 參數再查看一下是怎麼回事:
www.linuxidc.com @linuxidc:~$ sudo fdisk -l /dev/sdb

Disk /dev/sdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 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: 0x789c84b0


所用裝置 Boot Start End Blocks Id System
/dev/sdb1 1 15665 125829081 87 Linux
/dev/sdb2 15666 19457 30459240 83 Linux
結果發現在“System”這一欄是寫著“Linux”,
所以我在 Windows 的環境下“看得到卻用不了”這 2 個分割區,
要改變這種狀況就得再使用 fdisk 修改分割區表的內容;
首先是下 l 看看 fdisk 支援的分區型態有哪些,
並找到屬於 NTFS 的“87”代號:
Command (m for help): l


0 空 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 開機 85 Linux extended c7 Syrinx
5 延伸的 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
以參數 t 作修改: Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 87
Changed system type of partition 1 to 87 (NTFS volume set)
最後下達寫入分割表的參數後,
會告知分割表已被改變,
等下次重開機就能重新同步此硬盤了。
Command (m for help): w
The partition table has been altered!


Calling ioctl() to re-read partition table.


WARNING: Re-reading the partition table failed with error 16: 裝置或系統資源忙碌中.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
等重新開機後(或直接觀察)下達 fdisk -l 就會看到原本於 System 欄位的 Linux 已被變更成“NTFS volume set”了。
www.linuxidc.com @linuxidc:~$ sudo fdisk -l /dev/sdb

Disk /dev/sdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 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: 0x789c84b0


所用裝置 Boot Start End Blocks Id System
/dev/sdb1 1 15665 125829081 87 NTFS volume set
/dev/sdb2 15666 19457 30459240 83 Linux

Copyright © Linux教程網 All Rights Reserved