調整Linux磁碟分割槽的大小的方法

weixin_34321977發表於2016-09-19
 

 昨天資料入庫時,一直報錯,說磁碟滿了,,df -h    一看,發現/目錄下只有50G空間,已使用49G;我的程式和dbss都安裝在/目錄下,ftp到的資料放在/data下的一個子目錄下,分解完的資料也放在/data子目錄之下;現在空間緊張;只有倆種方法,要麼增加/目錄空間,要麼挪位置;如果是在本地用虛擬機器登陸的虛擬機器,建議用第一種,方法如下:

 

在工具欄中找到虛擬機器選項

點選虛擬機器,下拉選單中有個設定,然後點選設定。

選擇硬碟選項,之後,在彈出框的右邊可以看到擴充套件。。點選擴充套件磁碟就可以了

注意:要關閉虛擬機器後,才能設定磁碟大小。。

 

如果是用shell或者CRT登陸的遠端,建議先df -h 一下,看一下當前掛載的幾個分割槽或硬碟,記憶體幾何,然後再做相應的操作;;;

最一勞永逸的就是換地方;然後用定時任務,,定時清理超出超出時間的檔案,,是檔案的總大小,,恆定在一個範圍內;;;

 

下文是一個根據記憶體儲存方式來計算磁碟分割槽的一個方法,微調的時候有用!

----------

調整Linux磁碟分割槽的大小的方法

在使用linux的過程中, 有時會出現因為安裝系統時分割槽不當導致有的分割槽空間不足,而有的分割槽空間過剩的情況.比如: 我在安裝系統時給/usr/local分配器了5G的空間,但使用一段過程後發現, /usr/local最多隻用到了1G.這樣可以將/usr/local大小調整為1G. 空出4G留作他用.本文歸納了在不破快檔案系統資料的前提下對檔案系統大小進行調整的方法.這裡採用的是"拆東牆, 補西牆"的方法. 當然, 如果你的磁碟中有未分割槽的空閒空間, 你就不用減小某個分割槽的空間了.

 

準備工作

 

(一) 備份

 

首先組好備份要更改的分割槽中的檔案. 對磁碟的操作也許會導致資料的丟失. 開始工作之前最好將重要的資料儲存到別的分割槽.

 

(二) 獲取相關資訊.

 

1, 執行 $ df , 檢視檔案系統資訊. 記下你想要調整的分割槽對應的掛載點和裝置檔案.

 

這一步是為了檢視/usr/local對應/dev/中的哪個裝置檔案. 本文以/dev/hda7為例.

 

2, 執行 # sudo fdisk /dev/sda . 進入fdisk , 按下p, 檢視磁碟分割槽資訊. 記下/dev/sda8的起始柱面號, 終止柱面號. 設他們分別為start, end. 並記下一個"Unit"包含多少位元組.

 

注意, 檔案系統大小和磁碟分割槽大小是不能等同的: 起碼他們的計量單位不同. 在檔案系統中, 一般用KB, MB, GB為單位. 但在fdisk中, 是以磁碟的"unit"值(即一個柱面中包含的位元組數)來計算的. 我們執行 # fdisk /dev/sda後, fdisk顯示如下資訊:

 

Disk /dev/sda: 163.9 GB, 163928604672 bytes

255 heads, 63 sectors/track, 19929 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

 

(三)計算終止柱面號

 

e.g: 原先/usr/local的大小為5000 MB, 起始柱面號為2550, 終止柱面號為3157. 那麼我現在要將它的大小改為1000MB, 應該這樣計算終止柱面號( [3.2] = 4 ):

 

終止柱面號 = 2550 + [(1000 * 1024 * 1024 ) / 8225280] = 2678

 

使用fdisk刪除原來的分割槽(以前分割槽的資料不會丟失!). 然後新建一個分割槽, 新分割槽於舊分割槽唯一的區別就在於分割槽大小不一樣, 這表現在他們終止柱面號不同.

 

增加分割槽大小: 終止柱面號設定為空閒空間的最後一個柱面號.減小分割槽大小: 終止柱面號由計算得出.

 

開始調整

在開始調整之前, 最好拿一張紙記下要調整的分割槽的下列資訊:

 

調整前大小, 調整後大小. 它掛載在哪個目錄, 對應於/dev/中的哪個裝置. 起始, 終止柱面.

 

e.g: 調整前: 5G, 調整後: 1G, 掛載點: /usr/local, 對應於/dev/hda7. 起始,終止柱面分別為2550, 3157.

 

1, 解除安裝分割槽

最好在runlevel = 1的情況下解除安裝.

# umount /dev/

 

2, 檢查檔案系統的一致性

# fsck -n /dev/

 

3, 如夠是ext3系統, 還要去除日誌

# tune2fs -O ^has_journal /dev/

 

注意: 取出日誌後的ext3系統是無法掛載的, 使用

# tune2fs -j /dev/重建日誌.

 

4, 調整檔案系統大小

# resize_reiserfs -s 1000M /dev/hda7

 

調整完檔案系統的大小以後,再使用以下命令以檔案系統進行全面的檢查:

# reiserfsck --check --fix-fixable /dev/hda7

 

5, 進入fdisk, 調整分割槽大小.

# fdisk /dev/hda

 

由於核心仍然使用舊的分割槽表, 重啟之後再進行後面的步驟.

 

通過以上步驟,我們已經完成了硬碟分割槽大小調整的操作,接下來回到重新調整檔案系統大小的問題上來。 由於硬碟分割槽是按照柱面來計劃的,我們要在 resize_reiserfs步驟上就一步到位調整檔案系統大小與硬碟分割槽大小正好相等是比較困難的事情。所以一般是調硬碟分割槽比檔案系統要大一點點, 然後再通過以下命令進行同步(當然如果你不在意硬碟分割槽裡面存在部分空間的話也可以忽略以下步驟):

 

# umount /home/

# resize_reiserfs /dev/hda6

 

這樣, 就將/usr/local的大小調整為1G, 留下了4G的空閒磁碟空間。

 

追加:http://jingyan.baidu.com/article/154b463151f4b028ca8f41b7.html

相關文章