liunx 磁碟管理命令記錄,liunx磁碟命令記錄
Linux磁碟管理好壞管理直接關係到整個系統的效能問題。
Linux磁碟管理常用三個命令為df、du和fdisk。
- df:列出檔案系統的整體磁碟使用量
- du:檢查磁碟空間使用量
- fdisk:用於磁碟分割
今天我們來說一下如何使用fdisk和parted分區工具來進行硬碟分區,、下面我來說一下在Linux系統中這兩種硬碟分區工具的使用方法:
----------fdisk分區工具----------
在我的另一篇文章裡已經說過了在Linux系統中硬碟分區的概念了(http://blog.chinaunix.net/u3/112561/showart_2230401.html),所以在這裡我就不多說了,有不懂的可以看看那篇
一、.下面來介紹fdisk分區工具的命令格式:
fdisk是傳統的Linux硬碟分區工具,也是Linux系統中最常用的一種硬碟分區工具之一,它的命令格式如下:740)this.width=740;" border=0> 其中常用命令選項的說明如下:
-b sectorsize: 定義磁碟扇區的大小,有效值包括512、1024和2048,這個選項只對老版本的Linux作業系統有效。
-C cyls: 定義磁碟的柱面數,一般情況不需要對它進行定義,使用預設的就好。
-H heads: 定義分區表所使用的磁碟的碰頭數,一般為255或16。
-S sects: 定義每條磁軌的扇區數,一般為63。
-l :這是最常用到的一個命令選項,它是顯示指定磁碟裝置的分區表資訊,例如查看/dev/sdb1這個磁碟裝置的分區表資訊就是:fdisk -l /dev/sdb1
-u :在顯示分區表時,以扇區代替柱面作為顯示的單位
-s partition: 在標準輸出中以block為單位顯示分區的大小。
-v :顯示fdisk的版本資訊。
device:就是磁碟的裝置名稱,IDE類型的磁碟裝置名稱為[dev/hd[a-h]];而SCSI或SATA類型的磁碟裝置名稱為[dev/sd[a-p]]。
假如我要查看我電腦上的第一塊磁碟的分區表資訊(呵呵,我就一塊硬碟)可以使用如下命令:fdisk -l /dev/sda(我的硬碟是SATA類型的)顯示資訊 740)this.width=740;" border=0>
然後我們可以看一下它們各自對應磁碟裝置檔案:
使用命令:ll /dev/sda* 來查看740)this.width=740;" border=0>朋友們可以自己嘗試一下別的命令的作用,由於時間問題我在這裡就不一一說了~!下面我們來看看如何使用fdisk工具來對硬碟分區吧。
二、fdisk互動模式:
當我們使用了命令“fdisk+裝置名稱”後,就可以進入fdisk程式的互動模式了,在互動模式中可以通過輸入fdisk程式所提供的指令來完成相應的操作,其結果 740)this.width=740;" border=0>進入到這種模式時候,我們就可以通過輸入fdisk的指令來執行相應的磁碟分割管理操作了,輸入m可以擷取fdisk的指令協助資訊:: 740)this.width=740;" border=0>下面我們來看看各個指令的使用說明:
a :設定可引導標記
b :修改bsd的磁碟標籤
c :設定DOS作業系統相容標記
d :刪除一個分區
l :顯示已知的分區類型,其中82為Linux swap分區,83為Linux分區
m :顯示協助資訊
n :增加一個新的分區
o :建立一個新的空白的DOS分區表
p :顯示磁碟當前的分區表
q :退出fdisk程式,不儲存任何修改
s :建立一個新的空白的Sun磁碟標籤
t :改變一個分區的系統號碼(比如把Linux Swap分區改為Linux分區)
u :改變顯示記錄單位
v :對磁碟分割表進行驗證
w :儲存修改結果並退出fdisk程式
x :特殊功能,不建議初學者使用
知道了上面這些命令的意義,可以說就會對一塊硬碟進行分區了。下面我來舉個例子來說明一下:
首先我拿虛擬機器添加一塊硬碟,大小為170G,然後對其進行分區:
1.首先輸入“fdisk -l“命令來查看一下添加上硬碟沒有,然後輸入命令“fdisk /dev/sdb"來進入fdisk程式互動模式,如: 740)this.width=740;" border=0>
2.輸入指令“n"來建立一個分區,這個時候系統會讓你輸入是建立主要磁碟分割還是擴充分區,我選擇主要磁碟分割(p),然後輸入分區號(因為我這是新的硬碟,還沒有分過區,所以輸入1代表第一個主要磁碟分割),然後又是起始柱面,直接選擇預設即可。最後輸入你這塊分區的大小,我這裡是分的差不多50G吧!這樣一個分區就分好了,然後你可以輸入p指令來查看一下,如: 740)this.width=740;" border=0>
3.這次我再建立一個擴充分區,首先輸入指令n來建立一個分區,然後輸入e來選擇擴充分區,再輸入分區號(2),然後下面的都選擇預設就OK了!建立好後使用指令 p來查看一下, 740)this.width=740;" border=0>
4.下面我再在擴充分區裡面建立兩個邏輯分區,首先輸入指令n,然後選擇分區類型為l(邏輯分區)起始柱面選擇預設,然後輸入此邏輯分區的大小,我就分40G了。最後輸入指令p來查看一下是否建立成功,: 740)this.width=740;" border=0>
5.同樣的步驟建立另一個邏輯分區,這裡就不多說了。下面來看一下如何修改一個分區的類型。
6.輸入指令t來修改分區的類型(只需要輸入分區類型對應的ID號即可),然後輸入要修改的分區號,我這裡是修改的sdb5(也就是說輸入5就OK了)。最後輸入分區的類型的ID號,如果不知道分區的類型對應的ID號,你可以輸入“l"指令來查看分區類型所對應的ID號。 740)this.width=740;" border=0>7.查到分區類型的ID號後,你就可以輸入對應的ID號來修改分區類型了,我這裡把Linux分區改為Linux swap類型,從可知Linux swap類型所對應的ID為82,輸入82後斷行符號就完成 了修改,可以使用指令p來查看一下, 740)this.width=740;" border=0>
8.上面這些就是整個使用fdisk分區工具對硬碟進行分區的過程,哦,別忘記最後一步了,你得輸入指令w來對你所做的操作進行儲存,儲存後你可以使用fdisk -l /dev/sdb來查看是否分區成功。 9.上面我們對硬碟進行了分區,硬碟分完區之後是不能直接使用的,得格式化後才能使用,下面我們就對硬碟進行格式化。輸入“mkfs.ext3"來把硬碟格式化成ext3類型的檔案系統。具體mkfs命令的使用方法,可以自己使用man mkfs命令來查看,這裡就不詳細說明了。 10.輸入mkfs.ext3 /dev/sdb1命令來對硬碟格式化,一個一個分區都要格式化完成才可以,有一個特殊的分區就是swap,可以使用命令mkswap /dev/sdb5來對swap類型的分區進行格式化。如: 740)this.width=740;" border=0>740)this.width=740;" border=0>
11.格式化完檔案系統後,你需要對磁碟進行掛載後才能夠正常使用,掛載命令為mount,使用格式如下:
mount [-t 檔案系統類型 ] 存放裝置 掛載點(通常檔案系統類型通常可以省略,系統會自動識別)
12.在掛載之前你需要建立一個掛載點,就是你想要把這塊磁碟掛載到哪,然後你就把掛載點建立在哪就OK了。例如,上面例子中,我要對/dev/sdb1分區掛載,那麼我先給它建立一個掛載點:mkdir /media/sdb1,然後執行:mount /dev/sdb1 /media/sdb1掛載點的名字可以隨便起,掛載後你就可以往磁碟裡寫東西了, 740)this.width=740;" border=0>
13.為了方便起見,我們還可以修改相關的設定檔,使得系統對某一個分區進行自動掛載,具體就是修改/etc/fstab設定檔來實現,我以上面例子把/dev/sdb1分區配置成每次系統啟動時自動掛載到/media/sdb1下面,可以如下修改設定檔, 740)this.width=740;" border=0>
14.按照上面所做當系統每次啟動時,就會自動把/dev/sdb1分區掛載到/media/sdb1裡,而不用我們每次進行手動掛載。
15.如果我們不想使用某一分區時,需要對它進行卸載,可以使用“umount + 裝置掛載點”命令來進行卸載。如上例:umount /media/sdb1命令來進行卸載。
注意:有時候會遇到無法卸載的情況,遇到這種情況的原因是因為有其他使用者或進程正在訪問該檔案系統導致的,在Linux系統中,是不允許對正在被訪問的檔案系統進行卸載操作的,只有當該檔案系統上所有訪問的使用者或進程完成操作並退出後,這個檔案系統才能被正常卸載。我們有兩種方法來處理這種情況,一是用命令“lsof +掛載點”來查看到底是哪些進程正在訪問該檔案系統,尋找出來後,使用kill命令將進程殺死來進行卸載。二是使用命令“fuser -k +掛載點”。加-k選項是使用命令fuser找出正在訪問該檔案系統的進程,加上-k選項就是找出來並殺死。通過以上兩種方法就可以對一些無法卸載的檔案系統進行卸載了。
----------parted分區工具----------
parted是RHEL5下內建的另外一種分區軟體,相對於fdisk,它的使用更加方便,同時它還提供了動態調整分區大小的功能。下面我來如何通過parted建立、刪除磁碟分割、查看分區表、更改分區大小、建立檔案系統以及如何使用parted互動模式。
一、parted簡介:
parted是另一款在linux下常用的分區軟體,它支援的分區類型範圍非常廣,包括ext2、ext3、linux-swap、FAT、FAT32、reiserfs、HFS、jsf、ntfs、ufs和xfs等。它的命令格式如下:
parted [options] [device [command [options...]...]]
其中的命令選項說明如下:
-h :顯示協助資訊。
-i :互動模式。
-s :指令碼模式。
-v :顯示parted的版本資訊。
device :磁碟裝置名稱,如/dev/sda.
command :parted指令,如果沒有設定指令,則parted將會進入互動模式。
二、parted互動模式:
與fdisk類似,parted可以使用命令“parted+裝置名稱”進入互動模式。進入互動模式後,可以通過parted的各種指令來對磁碟分割進行管理,跟fdisk非常相似。我還以我電腦上的那塊硬碟為例,是進入parted互動模式後又輸入“help“命令協助的介面:-_-!汗,這裡少了一張圖,可能沒複製上吧。。。你只要終端下輸入“parted /dev/某個裝置”就可以進入parted互動模式。
parted的各種操作指令和詳細說明如下:
check NUMBER 檢查檔案系統
cp [FROM-DEVICE]FROM-NUMBER TO-NUMBER 複製檔案系統到另外一個分區
help[COMMAND] 顯示全部協助資訊或者指定命令的協助資訊
mklabel,mktable LABEL-TYPE 在分區表中建立一個新的磁碟標籤
mkfs NUMBER FS-TYPE 在分區上建立一個指定類型的檔案系統
mkpart PART-TYPE[FS-TYPE]START END 建立一個分區
mkparts PART-TYPE[FS-TYPE]START END 建立一個分區,並在分區上建立指定的檔案系統
move NUMBER START END 移動分區
name NUMBER NAME 以指定的名字命名分區號
print [free|NUMBER|all] 顯示分區表、指定的分區或者所有裝置
quit 退出parted程式
rescue START END 修複丟失的分區
resize NUMBER START END 更改分區的大小
rm NUMBER 刪除分區
select DEVICE 選擇需要更改的裝置
set NUMBER FLAG STATE 更改分區的標記
toggle [NUMBER[FLAG]] 設定或取消分區的標記
unit UNIT 設定預設單位
version 顯示parted的版本資訊
三、分區管理
1.查看分區
在parted互動模式下輸入print指令來查看分區(相當於fdisk的p指令),740)this.width=740;" border=0> 2.建立分區
在parted互動模式下輸入mkpart指令來建立磁碟分割,假如要建立一個開始位置為50G、結束位置為100G、檔案系統類型為ext3的邏輯分區,可以使用如下指令來建立:
mkpart logical ext3 50G 100G 740)this.width=740;" border=0>
當然也可以只輸入mkpart指令而不帶任何參數,parted會一步步提示使用者輸入相關資訊並最終完成分區建立,740)this.width=740;" border=0>3.建立檔案系統
建立分區後,可以使用mkfs指令在分區上建立檔案系統(也就是格式化),parted目前只支援ext2檔案系統,還不支援ext3,740)this.width=740;" border=0>
4.更改分區大小
使用resize指令可以更改指定分區的大小。需要更改大小的分區上面必須是已經建立了檔案系統,否則會提示:Error:Could not detect file system.下面我以dev/sdb6為例來縮小22G,因為我現在磁碟已經用完了,所以不能加了!就減少吧!740)this.width=740;" border=0>
5.刪除分區
使用rm指令可以刪除指定的磁碟分割,在進行刪除操作前必須先把分區卸載,例如我要刪除/dev/sdb6就是在parted互動模式下輸入“rm“指令,然後輸入要刪除的分區號。 740)this.width=740;" border=0> 。。。。。。Shit!終於寫完了,不容易啊,累死我了。都快1點多了-_-!趕緊睡覺去了!朋友們有什麼不明白的給我留言,我閃。。。。。。~~~~~~~~~~~~~~~~~
7.2.1 硬碟分區
過去,PC機硬碟一直使用32位PC-BIOS分區表和主引導記錄(MBR),因此分區大小最大不能超過2TB,並且每個硬碟最多隻能包含4個主要磁碟分割。使用擴充分區可以打破4個主要磁碟分割的限制。為解決2TB的限制,目前正逐步採用GPT(GUID Partition Tables,GUID分區表)替代PC-BIOS分區表。
fdisk曾是操作磁碟分割的標準命令。不過由於fdisk無法操作GPT分區,所以已慢慢棄之不用了。取而代之的是parted命令,更加強大,支援也更積極。
注意 如果偏愛使用圖形介面工具劃分硬碟分區、調整分區大小及其他硬碟操作,不妨試試gparted或qtparted分區工具。這兩個工具的命令與軟體包同名。
1. 用fdisk修改磁碟分割
fdisk命令可以列出和修改磁碟分割。記住,修改或刪除分區可能會一併移除重要資料,寫入磁碟前對自己所做的修改一定要心知肚明。以root許可權鍵入下面的命令可以列出硬碟分區的相關資訊:
從命令輸出可知,這個80GB的硬碟共劃分為3個分區。第一個(/dev/sda1)為較小的/boot分區,配置成Linuxext3檔案系統(Id 83)。注意,其中的星號(*)表明這個分區為可引導分區。第二個分區為根檔案系統分區,同樣採用ext3檔案系統。最後一個分區為交換分區(Linux swap)。
注意 在Fedora 7及後繼版本中,IDE和SCSI磁碟都採用/dev/sd?裝置名稱,其中?代表一個字母(a、b或c等)。在RHEL5和較早版本的Fedora中,只有SCSI磁碟和隨身碟才使用/dev/sd?,IDE硬碟則使用/dev/hd?。
如有多個磁碟,fdisk -l會列出全部磁碟,除非明確指定要查看的磁碟:
使用fdisk命令時,直接指定某個磁碟且不帶其他選項,即可操作指定磁碟:
顯示提示符之後,即可使用上面列出的命令操作硬碟。具體來說,你可以使用p(顯示結果與fdisk -l相同)、n(建立新分區)、d(刪除現有分區)、l(列出已知檔案系統類型)或t(更改分區檔案系統類型)。下面舉例說明幾個fdisk命令:
除非明確指定,否則新分區預設使用Linux ext3檔案系統(83)。L命令與l命令等效,都能顯示檔案系統類型和十六進位代碼。如上所示,鍵入82將分區指定為swap。其他比較常見的Linux分區包括Linux擴充(85)、Linux LVM(8e)、Linux軟體raid(fd)和EFI/GTP(ee)。
Windows分區可以指定為HPFS/NTFS(7)、Windows 95 FAT32(b)、FAT16(6)或Windows 95 FAT32 LBA(c)。其他Unix類檔案系統包括Minix(be或bf)、BSD/OS(e4)、FreeBSD(ee)、OpenBSD(ef)、NeXTSTEP(f0)、Darwin UFS(f1)和NetBSD(f4)。這些檔案系統都有可能派上用場,比如需要恢複採用上述檔案系統的備份儲存介質時。
至此,分區表實際上並未做任何改動。如果十分確定之前的設定正確無誤,只需鍵入w將上述改動寫入分區表。準備放棄所有改動(或寫入分區表之後退出)的話,可以直接鍵入q退出fdisk會話。
2. 用sfdisk複製分區表
使用sfdisk可以備份或複製磁碟分割表:
3. 用parted修改磁碟分割
和fdisk一樣,parted也能列出或修改磁碟分割。此外,parted還具備其他一些實用功能。下面的樣本使用parted列出分區:
從命令輸出可以看出磁碟採用的傳統msdos磁碟標籤(分區表)還是gpt標籤。這裡是msdos分區表。
鍵入parted,後面跟上要操作的存放裝置名(如/dev/sda),便會以互動方式運行parted。只有一個存放裝置的話,可以直接鍵入parted:
互動方式使用parted時,可以鍵入整個命令,也可以只鍵入開頭部分字元,並用Tab鍵補全整個命令(和bash shell裡的做法相同)。這些命令一旦爛熟於心,只需鍵入一定數量的字母,能讓parted猜到輸入哪個命令即可。與CiscoiOS的用法一樣:p代表print,mkl代表mklabel,不一而足。
警告 與fdisk不同,使用parted對分區所做的改動會立即生效,不用另行寫入磁碟。總之,不要誤以為直接退出parted就能撤銷所有改動。
對於parted會話裡的各個命令,既可以選擇在輸入命令時一起鍵入所有參數(例如mkpart logical ext3 10.7GB 17.0GB),也可以只輸入命令本身(mkpart),parted會以互動方式指導隨後的操作:
盡量不要使用mkpartfs,該命令無法正確建立ext3分區。可以用mkpart替代,建立一個ext3分區(如上所示),退出parted後用mkfs.ext3命令格式化分區。為建立新分區騰空間時,往往需要調整常見Linux分區的大小,樣本如下:
警告 如果用的不是LVM,上述命令會破壞整個檔案系統。
使用ntfsresize命令可以調整NTFS分區大小。在Fedora中,該命令隸屬於ntfsprogs軟體包。這個軟體包還包含建立(mkfs.ntfs)、修複(ntfsfix)和擷取NTFS分區相關資訊(ntfsinfo)等命令