Ubuntu 格式化硬盘




现在在 Ubuntu 中进行硬盘格式化是很简单的事,
只要使用“磁碟公用程式”就能达到 分割/格式化 的动作。
(Gnome3 Classic:“应用程式”→“附属应用程式”→“磁碟公用程式”



PC主板BIOS格式化硬盘 从bios格式化硬盘_System


直到几天前我才想尝试着以命令列执行格式化的作业,
原本只想将分割成 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