linux擴大分區
1. 怎麼樣擴大linux 分區
這里以Red hat AS4 為例。當磁碟分區發現不夠用時,能想道的第一個做法就是增加分區大小。但是一般Linux如果沒有採用邏輯卷管理,則動態增加分區大小很困難,一個能想道的辦法就是,備份分區文件系統數據,刪除分區,然後再重新創建分區,恢復備份的文件系統,這個做法比較玄,可能刪除分區後導致系統無法啟動。
第二個做法就是,創建一個新的邏輯分區(當然必須有未使用的磁碟空間能分配),將文件系統從老分區拷貝到新分區,然後修改fstab,使用新分區/文件系統替換老的分區/文件系統
第三種做法是,創建一個新的邏輯分區,將新的邏輯分區格式化ext3(或其他類型)的文件系統,mount到磁碟空間不夠的文件系統,就跟原來的分區/文件系統一樣的使用。
這里採用的是第三種方式:
sdb為第二個SCSI硬碟。
[root@hdp0 hadoop]# /sbin/fdisk /dev/sdb
The number of cylinders for this disk is set to 8942.
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): p
Disk /dev/sdb: 73.5 GB, 73557090304 bytes
255 heads, 63 sectors/track, 8942 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 130 1044193+ 83 Linux
/dev/sdb2 131 391 2096482+ 82 Linux swap
/dev/sdb3 392 521 1044225 83 Linux
/dev/sdb4 522 8942 67641682+ 5 Extended
/dev/sdb5 522 586 522081 83 Linux
/dev/sdb6 587 651 522081 83 Linux
/dev/sdb7 652 1173 4192933+ 83 Linux
可以看出sdb1,2,3為主分區,sdb4為擴展分區。後面的sdb5,6,7則為邏輯分區。柱面編號(Start,End)是連續的,sdb7隻用道了1173,而從擴展分區看最大到8942,也就是說,還有7769個柱面是空閑的,一個柱面大小為8225280,約為8M大小。還剩7769*8225280bytes,約62G未使用。
新增加一個邏輯分區(註:若涉及到主分區和擴展分區,實際情況可能比這個復雜,這里4個主分區(包括擴展分區)都分過了,所以只能分邏輯分區)
Command (m for help): n
First cylinder (1174-8942, default 1174):
Using default value 1174
增加大小為10G
Last cylinder or +size or +sizeM or +sizeK (1174-8942, default 8942): +10240M
增加後看一下,多了一個邏輯分區/dev/sdb8
Command (m for help): p
Disk /dev/sdb: 73.5 GB, 73557090304 bytes
255 heads, 63 sectors/track, 8942 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 130 1044193+ 83 Linux
/dev/sdb2 131 391 2096482+ 82 Linux swap
/dev/sdb3 392 521 1044225 83 Linux
/dev/sdb4 522 8942 67641682+ 5 Extended
/dev/sdb5 522 586 522081 83 Linux
/dev/sdb6 587 651 522081 83 Linux
/dev/sdb7 652 1173 4192933+ 83 Linux
/dev/sdb8 1174 2419 10008463+ 83 Linux
可以看到,增加了一個sdb8的分區,柱面號從1174到2419.
寫入分區表,執行分區操作
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.
Syncing disks.
分區完後,是看不到文件系統的
[root@hdp0 hadoop]# df -m
Filesystem 1M-塊 已用 可用 已用% 掛載點
/dev/sdb1 1004 582 372 62% /
none 1014 0 1014 0% /dev/shm
/dev/sdb3 1004 807 147 85% /home
/dev/sdb5 494 11 458 3% /opt
/dev/sdb7 4031 3272 554 86% /usr
/dev/sdb6 494 87 382 19% /var
重啟機器
reboot
格式化文件系統
[root@hdp0 hadoop]#/sbin/mkfs.ext3 /dev/sdb8
mount文件系統,/home/develop 為/home下一目錄
[root@hdp0 hadoop]#mount /dev/sdb8 /home/develop
查看文件系統,可以看到新建立的分區/文件系統已經掛載上,能夠使用了。
[root@hdp0 hadoop]# df -m
Filesystem 1M-塊 已用 可用 已用% 掛載點
/dev/sdb1 1004 582 372 62% /
none 1014 0 1014 0% /dev/shm
/dev/sdb3 1004 807 147 85% /home
/dev/sdb5 494 11 458 3% /opt
/dev/sdb7 4031 3272 554 86% /usr
/dev/sdb6 494 87 382 19% /var
/dev/sdb8 9621 54 9079 1% /home/develop
2. linux分區滿了,如何進行擴容
有兩種方法實現對linux分區的擴容。第一種方式是軟鏈接(符號鏈接)。舉個例子來說明下軟鏈接,假如你的/b目錄滿了,不能存儲文件。這時你把/a目錄鏈接到/b目錄,你在訪問/b目錄時實際是訪問/a目錄裡面的空間。
假設新增的磁碟為xvdb1,首先對磁碟分區,具體方法參考網上教程分區完成後製作文件系統(順序不可亂)。完成後先將原先目錄已滿的/b從原掛載點卸載,例如:umount
/dev/xvda1
/b。卸載掉掛載在/b目錄下的分區xvda1。重新將新增的分區掛載到/b:mount
/dev/xvdb1
/b。將/etc/fstab內加入新掛載的分區和掛載點,這一點非常重要,否則重啟後分區會丟失。至此,原來已滿的/b被重新掛載到了新的硬碟分區,然後將原來備份的文件拷貝回來就可以了。
3. linux,如何擴展某個文件夾所在分區的大小
如果你使用的是手動分區的方式,可以先用分區工具(fdisk或者parted都可以)擴展文件夾所在的分區,如果是使用邏輯卷的方式,可以直接運行lvextend命令擴展邏輯卷
上一步擴展完成之後再擴展文件系統本身,如果是ext3文件系統可以使用ext2online命令擴展,如果是xfs文件系統,可以使用xfs_growfs命令擴展文件系統,如果是其它的可以參考網上其它擴展文件系統的辦法,這兩個命令都是可以在umount文件系統的情況下「在線」擴展文件系統的
4. Linux 已有四個主分區,怎麼新增擴展分區
linux下一塊硬碟最多有四個主分區,所以需要刪除一個分區,才能新增擴展分區。
fdisk
命令:
如fdisk
/dev/sda
刪除分區:command(m
for
help):
d
刪除一個分區,刪除請備份數據
新增分區:command(m
for
help):
n
p---檢查是否生效
w---保存
q---離開
5. linux新增了磁碟空間,怎麼增大原有的分區
樓下提供的是一種變相的方案, 將新增空間轉變為分區掛載到文件系統中使用。
另一種方案是用fdisk 根據磁碟分區起始和終止柱面號,刪除已有分區,重新新建分區。
具體方案參考以下網路文章(以下原文基本涵蓋了主要技術點,如果未涉及其他具體細節,你可參考其他網路同分類文章):
##################
在使用linux的過程中, 有時會出現因為安裝系統時分區不當導致有的分區空間不足,而有的分區空間過剩的情況.
比如: 我在安裝系統時給/usr/local分配器了5G的空間,但使用一段過程後發現, /usr/local最多隻用到了1G.這樣可以將
/usr/local大小調整為1G. 空出4G留作他用.
本文歸納了在不破快文件系統數據的前提下對文件系統大小進行調整的方法.這里採用的是"拆東牆, 補西牆"的方法. 當然, 如果你的
磁碟中有未分區的空閑空間, 你就不用減小某個分區的空間了. 這實際上是一個特例.
減小一個分區的大小:
[ partition ]
[ partition | free space ]
增加一個分區的大小:
[ partition a1 | partition b | free space ]
[ partition a2 | | partition a2 ]
准備工作
(一) 備份
首先組好備份要更改的分區中的文件. 對磁碟的操作也許會導致數據的丟失. 開始工作之前最好將重要的數據保存到別的分區.
(二) 獲取相關信息.
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/<partition to resize>
2, 檢查文件系統的一致性
# fsck -n /dev/<partition to resize>
3, 如夠是ext3系統, 還要去除日誌
# tune2fs -O ^has_journal /dev/<partition to resize>
注意: 取出日誌後的ext3系統是無法掛載的, 使用
# tune2fs -j /dev/<resized partition>重建日誌.
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的空閑磁碟空間.
#####################
6. Linux系統如何擴展分區容量
如果其中的數據不要了,可以直接用fdisk將相鄰兩個分區合並一下。
如果希望使用類似於Windows Partition Magic的圖形化工具,建議使用gParted,這個工具也是非常強大的,可以進行Linux分區調整的方法,它比較適合個人計算機中的硬碟分區調整,同時也可避免數據丟失。
gParted有圖形界面,很容易上手。網上教程有很多。即使自己摸索,應該也可以搞定的。
7. Linux 已有四個主分區,怎麼新增擴展分區
您好,理論上是不可以再新建分區了,所以您可以使用一些分區編輯軟體將一個主分區或更多主分區轉化為邏輯分區。也可以通過刪除一個分區來創造一個新的邏輯分區。同時您要注意,這樣的話,linux有可能因為分區的變化而無法啟動。為了防止在操作中出現意外情況,您還是使用一些dos,pe或者linux live cd來改動。之後重建grub。分區操作比較危險,數據無價,謹慎操作。如有其他問題,歡迎追問。