天天看點

linux 判斷分區是否存在,怎麼檢視linux磁盤是否存在

一,檢視磁盤狀态

這裡簡單介紹兩個指令:df、du。

df:df用來檢查檔案系統的磁盤空間占用情況。可以利用該指令來擷取硬碟被占用了多少空間,目前還剩下多少空間等資訊。 df的參數有:代碼:

-a 顯示所有檔案系統的磁盤使用情況,包括0塊(block)的檔案系統,如/proc檔案系統。

-k 以k位元組為機關顯示。

-i 顯示i節點資訊,而不是磁盤塊。

-t 顯示各指定類型的檔案系統的磁盤空間使用情況。

-x 列出不是某一指定類型檔案系統的磁盤空間使用情況(與t選項相反)。

-T 顯示檔案系統類型。 對df指令進行詳解:

引用:

[email protected]:~$ df

Filesystem 1K-塊 已用 可用 已用% 挂載點

/dev/sda12 3842376 242424 3404764 7% /

這個就是最基本用法,你可能覺得奇怪已用和可用加在一起不等于前面的塊的總值,這是因為預設狀況下,有留給root的專門用于維護管理的保留白間,不用在意。其他的用法無非是加上不同的參數顯示不同的資訊,不再反複說明。

du:du用于統計目錄或檔案所占磁盤空間的大小。 它的參數如下:代碼:

-s 對每個Names參數隻給出占用的資料塊總數。

-a 遞歸地顯示指定目錄中各檔案及子孫目錄中各檔案占用的資料塊數。

若既不指定-s,也不指定-a,則隻顯示Names中的每一個目錄及其中的各子目錄所占的磁盤塊數。

-b 以位元組為機關列出磁盤空間使用情況(系統預設以k位元組為機關)。

-k 以1024位元組為機關列出磁盤空間使用情況。

-c 最後再加上一個總計(系統預設設定)。

-l 計算所有的檔案大小,對硬連結檔案,則計算多次。

-x 跳過在不同檔案系統上的目錄不予統計。

二、Ubuntu硬碟分區

在一個有win的電腦上,分區無疑是一件很簡單的事。使用分區魔術師,對硬碟可以進行分區、合并、調整大小,是以大多數和我一樣電腦上先有win的朋友在分區方面一定不用愁,整理下資料,空出幾個分區,然後在Ubuntu硬碟安裝的時候就可以利用安裝程式分好區,以後就沒有什麼可擔憂的了,但是某些朋友因為某些 需要,必須利用linux作業系統進行分區,那麼以下的内容也許能有點價值。

首先談談基礎知識,一個Ubuntu硬碟可以劃分4個區,3個主要分區,一個擴充分區,而擴充分區裡可以劃分n個邏輯分區,擴充分區本身不能儲存任何東西,也不能格式化成某種檔案系統,隻能用于區分邏輯分區。

我們主要應用的指令有三個:fdisk、cfdisk、gparted。其中前兩個指令在breezy中已經安裝好了,如果你需要gparted的話是需要另外安裝的,我們的源裡有,安裝方法:代碼:sudo apt-get install gparted

這三個軟體的不同之處主要在于直覺性、易用性,fdisk可以說最難用,而cfdisk有了字元的界面,gparted則有了基于gnome的更漂亮的界面,從功能的角度上來說三個軟體都差不多,但是有時不得不使用fdisk,這裡我對三個軟體的使用進行一定的說明:fdisk:代碼:sudo fdisk -l會列出所有硬碟之實體使用情況。代碼:sudo fdisk -l /dev/hda會列出第一快IDE硬碟的使用情況,響應的來講可以換用/dev/sda等等。代碼:sudo fdisk /dev/hda

進入硬碟分區模式,進入這個模式後所有操作不會立刻生效,隻會在得到确認的指令後才會起作用。代碼:

m 顯示所有指令提示。

p 現實硬碟分區情況。

a 設定硬碟起動區。

n 設定新的硬碟分區。

l 列出所有檔案系統類型。

e 在輸入n的情況下才能用,指增加一個擴充分區。

p 在輸入n的情況下才能用,指增加一個主要分區。

l 在輸入n的情況下才能用,指增加一個邏輯分區。

t 改變硬碟分區屬性。

d 删除硬碟分區。

q 結束但不對硬碟進行修改。

w 結束而且對硬碟進行修改。

現在對fdisk的結果進行詳解,以下是在我的電腦上運作的例子:引用:

[email protected]:~$ sudo fdisk -l /dev/hda

Disk /dev/hda: 60.0 GB, 60022480896 bytes

255 heads, 63 sectors/track, 7297 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/hda1 * 1 1276 10249438+ 7 HPFS/NTFS

/dev/hda2 1277 7297 48363682+ f W95 Ext'd (LBA)

/dev/hda5 1277 2551 10241406 7 HPFS/NTFS

/dev/hda6 2552 3835 10313698+ 7 HPFS/NTFS

/dev/hda7 3836 3957 979933+ 82 Linux swap / Solaris

/dev/hda8 3958 4261 2441848+ 83 Linux

/dev/hda9 4262 4869 4883728+ 83 Linux

/dev/hda10 4870 7297 19502878+ 83 Linux

上面的提示表示,我的Ubuntu硬碟有60G,255個磁面,63個扇區,7297個磁柱;每個磁柱容量是8225280 Byte 大約是8225KB或者8MB。

Device Boot Start End Blocks Id System分區序列 引導 開始 終止 容量 分區類型ID 分區類型引導 表示引導分區,在上面的例子中 hda1 是引導分區;開始 表示的一個分區從X cylinder(磁柱)開始;結束表示一個分區到 Y cylinder(磁柱)結束;然後進入分區模式:

引用:

[email protected]:~$ sudo fdisk /dev/hda

The number of cylinders for this disk is set to 7297.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):

上面的提示大概的意思就是我的Ubuntu硬碟大于1024個磁柱是以呢,老闆本的lilo會不買我的帳,可以不用在意。我們先嘗試指令d

引用:

Command (m for help): d

Partition number (1-10):

它問你要删除哪個分區,一定要注意,如果删了擴充分區,那麼所有邏輯分區一塊跟着挂,一定要小心。我輸入7,再輸入p就可以看到自己的Ubuntu硬碟分區少了一個。

接下來我添加一個邏輯分區:引用:

Command (m for help): n

Command action

l logical (5 or over)

p primary partition (1-4)

l

First cylinder (3836-7297, default 3836):3836

Last cylinder or +size or +sizeM or +sizeK (3836-3957, default 3957): 3957

這裡的兩個問題是,開始的磁柱是哪個,結束的磁柱是哪個。在結束的磁柱處可以用+sizeM +sizeK來輸入。然後是對分區類型的改變,我輸入t:

引用:

Command (m for help): t

Partition number (1-10): 7

Hex code (type L to list codes): L

輸入L可以看到所有磁盤的檔案類型列清單,然後再從輸入相應的檔案系統ID就可以對分區檔案系統進行更改了。最後如果需要儲存就輸入w,不許要則輸入q,這樣分區修改就算結束了。

cfdisk、gparted:cfdisk有非常直覺的界面,而gparted甚至是中文的,是以這裡我就不再多作介紹。

三、Ubuntu硬碟格式化

分完區還不算完事,格式化後才能正常使用,這裡介紹下Linux格式化指令:代碼:sudo mkfs -t 檔案系統儲存設備格式化就是這麼簡單,或者也可一這樣輸入指令:代碼:

sudo mkfs.ext3 /dev/sda6 把該裝置格式化成ext3檔案系統。

sudo mke2fs -j /dev/sda6 把該裝置格式化成ext3檔案系統。

sudo mkfs.ext2 /dev/sda6 把該裝置格式化成ext2檔案系統。

sudo mke2fs /dev/sda6 把該裝置格式化成ext2檔案系統。

sudo mkfs.reiserfs /dev/sda6 把該裝置格式化成reiserfs檔案系統。

sudo mkfs.vfat /dev/sda6 把該裝置格式化成fat32檔案系統。

sudo mkfs.msdos /dev/sda6 把該裝置格式化成fat16檔案系統,msdos檔案系統就是fat16。

sudo mkdosfs /dev/sda6 把該裝置格式化成fat16檔案系統,同mkfs.msdos

sudo mkswap /dev/sda6 把該裝置格式化成swap檔案系統。

這樣分好區,并且格式化結束,就可以進行挂載了。

四、Ubuntu硬碟挂載檔案系統

挂載檔案系統有兩個方法,一種是利用mount指令,另外一種是修改/etc/fstab,因為修改/etc/fstab并不友善,是以我隻介紹mount。mount指令的用法如下:

代碼:sudo mount [-t 檔案系統 ] [-o 選項] 裝置 目錄

使用這個指令前需要先生成一個用于被挂的目錄,建立了這樣的目錄後有個細節問題就是更改這個目錄的權限,最起碼要你可讀寫,這樣才能使你挂載的硬碟可讀寫,當然ntfs的硬碟除外。代碼:chmod 777 目錄

而挂載時,也有可以省事的地方,比如說你不知道你的分區是什麼檔案類型你可以:代碼:sudo mount -t auto 裝置目錄或者也可以:代碼:sudo mount 裝置 目錄順便說下swap分區,一般不這樣挂載,而采用加載指令進行加載:代碼:sudo swapon 裝置相應的也就産生了:代碼:sudo swapoff 裝置

五、Ubuntu硬碟對檔案系統進行掃描

各 位朋友對Windows中的scandisk不寞生吧,在Linux中就有類似這樣的工具fsck,不過fsck 可不僅僅是掃描,還能修正檔案系統的一 些問題。一定要注意的是fsck 掃描檔案系統時一定要在修複模式或把裝置umount後進行,否則會有重大的問題發生。

其中fsck 預設支援 檔案系統ext2,如果想支援ext3檔案系統的掃描,應該加-j 參數,最好是我們應該根據不同的檔案系統來調用不同的掃描工具,比 如 fsck.ext2,fsck.jfs,fsck.msdos,fsck.ext3,fsck.reiserfs。對于fsck.ext2和 fsck.ext3有幾個常用參數,如下:代碼:

-p 自動修複檔案系統存在的問題;

-y 如果檔案系統有問題,會跳出提示是否修複,如果修複請按y;

-c 對檔案系統進行壞塊檢查;這是一個極為漫長的過程;

-n 不對檔案系統做任何改變,隻要掃描,以檢測是否有問題;

那麼使用它的方法就是:代碼:sudo fsck.ext3 -p /dev/hda6任何對Ubuntu硬碟操作都是有危險的,千萬不要随便練手,在可能的情況下盡量使用帶有界面的gparted,不到萬不得已不要随便格式化。這是為了你的資料和Ubuntu硬碟壽命着想。