這里以Red hat AS4 為例。當(dāng)磁盤分區(qū)發(fā)現(xiàn)不夠用時(shí),能想道的第一個(gè)做法就是增加分區(qū)大小。但是一般Linux如果沒有采用邏輯卷管理,則動(dòng)態(tài)增加分區(qū)大小很困難,一個(gè)能想道的辦法就是,備份分區(qū)文件系統(tǒng)數(shù)據(jù),刪除分區(qū),然后再重新創(chuàng)建分區(qū),恢復(fù)備份的文件系統(tǒng),這個(gè)做法比較玄,可能刪除分區(qū)后導(dǎo)致系統(tǒng)無(wú)法啟動(dòng)。
“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是成都創(chuàng)新互聯(lián)的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個(gè)不僅審美在線,而且實(shí)用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對(duì)做網(wǎng)站、網(wǎng)站制作、網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無(wú)止境。
第二個(gè)做法就是,創(chuàng)建一個(gè)新的邏輯分區(qū)(當(dāng)然必須有未使用的磁盤空間能分配),將文件系統(tǒng)從老分區(qū)拷貝到新分區(qū),然后修改fstab,使用新分區(qū)/文件系統(tǒng)替換老的分區(qū)/文件系統(tǒng)
第三種做法是,創(chuàng)建一個(gè)新的邏輯分區(qū),將新的邏輯分區(qū)格式化ext3(或其他類型)的文件系統(tǒng),mount到磁盤空間不夠的文件系統(tǒng),就跟原來(lái)的分區(qū)/文件系統(tǒng)一樣的使用。
這里采用的是第三種方式:
sdb為第二個(gè)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為主分區(qū),sdb4為擴(kuò)展分區(qū)。后面的sdb5,6,7則為邏輯分區(qū)。柱面編號(hào)(Start,End)是連續(xù)的,sdb7只用道了1173,而從擴(kuò)展分區(qū)看最大到8942,也就是說(shuō),還有7769個(gè)柱面是空閑的,一個(gè)柱面大小為8225280,約為8M大小。還剩7769*8225280bytes,約62G未使用。
新增加一個(gè)邏輯分區(qū)(注:若涉及到主分區(qū)和擴(kuò)展分區(qū),實(shí)際情況可能比這個(gè)復(fù)雜,這里4個(gè)主分區(qū)(包括擴(kuò)展分區(qū))都分過了,所以只能分邏輯分區(qū))
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
增加后看一下,多了一個(gè)邏輯分區(qū)/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
可以看到,增加了一個(gè)sdb8的分區(qū),柱面號(hào)從1174到2419.
寫入分區(qū)表,執(zhí)行分區(qū)操作
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: 設(shè)備或資源忙.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
分區(qū)完后,是看不到文件系統(tǒng)的
[root@hdp0 hadoop]# df -m
Filesystem 1M-塊 已用 可用 已用% 掛載點(diǎn)
/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
重啟機(jī)器
reboot
格式化文件系統(tǒng)
[root@hdp0 hadoop]#/sbin/mkfs.ext3 /dev/sdb8
mount文件系統(tǒng),/home/develop 為/home下一目錄
[root@hdp0 hadoop]#mount /dev/sdb8 /home/develop
查看文件系統(tǒng),可以看到新建立的分區(qū)/文件系統(tǒng)已經(jīng)掛載上,能夠使用了。
[root@hdp0 hadoop]# df -m
Filesystem 1M-塊 已用 可用 已用% 掛載點(diǎn)
/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
Linux下常用的分區(qū)工具:
fdisk/sfdisk:命令行工具,各種版本和環(huán)境都能使用,包含在軟件包util-linux中
diskdruid:圖形化分區(qū)工具,只能在安裝REDHAT系統(tǒng)時(shí)使用。
第一步:fdisk
[root@novice ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 254 MB, 254017536 bytes
8 heads, 61 sectors/track, 1016 cylinders, total 496128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
[root@novice ~]# fdisk /dev/sdb
Command (m for help): #在輸入上面的命令后會(huì)出現(xiàn)左邊的提示,輸入m就會(huì)得到一個(gè)幫助菜單,如下:
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)
#help雖然是英文的,可都很簡(jiǎn)單,在這里不再解釋。
#現(xiàn)在,我們正式開始分區(qū)的操作:
Command (m for help): n #新建分區(qū)
Command action
e extended
p primary partition (1-4)
#e/p分別對(duì)應(yīng)擴(kuò)展分區(qū) /主分區(qū);我們先分四個(gè)主分區(qū),每個(gè)50M;然后再來(lái)增加主分區(qū)或擴(kuò)展分區(qū),看會(huì)出現(xiàn)怎樣的狀況,嘿嘿。
p #分區(qū)類型為主分區(qū)
Partition number (1-4, default 1): 1 #分區(qū)號(hào),在這里我們依次選擇1、2、3、4
First sector (2048-496127, default 2048): #指定分區(qū)的起始扇區(qū),一般默認(rèn),按enter鍵即可。
Last sector, +sectors or +size{K,M,G} (2048-496127, default 496127): +50M #指定分區(qū)的終止扇區(qū),根據(jù)前面的提示我們可以做出相應(yīng)的選擇+sectors 或 +size{K,M,G}
Command (m for help): p #用p打印出已建好的分區(qū)列表
Disk /dev/sdb: 254 MB, 254017536 bytes
8 heads, 61 sectors/track, 1016 cylinders, total 496128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
#剩下的三個(gè)分區(qū)的建立操作同上
#分好四個(gè)主分區(qū)后的情況如下
Command (m for help): p
Disk /dev/sdb: 254 MB, 254017536 bytes
8 heads, 61 sectors/track, 1016 cylinders, total 496128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 206847 51200 83 Linux
/dev/sdb3 206848 309247 51200 83 Linux
/dev/sdb4 309248 309298 25+ 83 Linux
#已經(jīng)建好四個(gè)主分區(qū)啦,現(xiàn)在我們來(lái)看看如果再建主分區(qū)或是擴(kuò)展分區(qū)的話會(huì)出現(xiàn)怎樣的情況:
Command (m for help): n
You must delete some partition and add an extended partition first
#看到了吧,不能再建分區(qū)啦!要再建分區(qū)的話必須刪除some分區(qū),再新建一個(gè)擴(kuò)展分區(qū)才行。
#現(xiàn)在,我們刪掉一個(gè)主分區(qū),來(lái)新建擴(kuò)展分區(qū)
Command (m for help): d #刪除分區(qū)
Partition number (1-4): 4 #選擇要?jiǎng)h除分區(qū)的分區(qū)號(hào),我們選第四個(gè)
Command (m for help): p #打印,如下,四個(gè)分區(qū)變成了三個(gè)!
Disk /dev/sdb: 254 MB, 254017536 bytes
8 heads, 61 sectors/track, 1016 cylinders, total 496128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 206847 51200 83 Linux
/dev/sdb3 206848 309247 51200 83 Linux
#新建一個(gè)擴(kuò)展分區(qū)
#如果在沒有建滿三個(gè)主分的區(qū)的情況下建立擴(kuò)展分區(qū),相關(guān)選項(xiàng)會(huì)有些不同。
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Selected partition 4
First sector (309248-496127, default 309248): #enter,默認(rèn)
Using default value 309248
Last sector, +sectors or +size{K,M,G} (309248-496127, default 496127): #enter,默認(rèn),使用剩余空間
Using default value 496127
Command (m for help): p
Disk /dev/sdb: 254 MB, 254017536 bytes
8 heads, 61 sectors/track, 1016 cylinders, total 496128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 206847 51200 83 Linux
/dev/sdb3 206848 309247 51200 83 Linux
/dev/sdb4 309248 496127 93440 5 Extended
#接下來(lái),我們?cè)谛陆ǖ臄U(kuò)展分區(qū)里再新建兩個(gè)邏輯分區(qū),因?yàn)橐呀?jīng)有了三個(gè)主分區(qū),這里不會(huì)再顯示是建立邏輯分區(qū)還是主分區(qū)的提示!
Command (m for help): n
First sector (311296-496127, default 311296): #enter
Using default value 311296
Last sector, +sectors or +size{K,M,G} (311296-496127, default 496127): +50M
Command (m for help): n
First sector (415744-496127, default 415744): #enter
Using default value 415744
Last sector, +sectors or +size{K,M,G} (415744-496127, default 496127): #enter
Using default value 496127
Command (m for help): p
Disk /dev/sdb: 254 MB, 254017536 bytes
8 heads, 61 sectors/track, 1016 cylinders, total 496128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 206847 51200 83 Linux
/dev/sdb3 206848 309247 51200 83 Linux
/dev/sdb4 309248 496127 93440 5 Extended
/dev/sdb5 311296 413695 51200 83 Linux
/dev/sdb6 415744 496127 40192 83 Linux
#上面的列表,就是我們今天分區(qū)的成果啦!接下來(lái)保存退出,重啟計(jì)算機(jī),就可以進(jìn)行下一步的mkfs操作啦!如果忘記了相關(guān)的操作命令,記得按m!!!
Command (m for help): w #保存
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
另:在建好分區(qū)后,我們還可以更改相關(guān)分區(qū)的文件系統(tǒng)類型
#如,我們要把第二個(gè)主分區(qū)改成Linux下的交換分區(qū),操作如下
Command (m for help): t #更改文件系統(tǒng)類型
Partition number (1-6): 2 #選擇第二個(gè)分區(qū)
Hex code (type L to list codes): L #選擇要更改的文件系統(tǒng)編碼,可以按L來(lái)查看相關(guān)編碼信息。
0 Empty 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-
............
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
Hex code (type L to list codes): 82 #查找到linux swap的編碼為82
Changed system type of partition 2 to 82 (Linux swap / Solaris)
Command (m for help): p
..............
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 206847 51200 82 Linux swap / Solaris
/dev/sdb3 206848 309247 51200 83 Linux
/dev/sdb4 309248 496127 93440 5 Extended
/dev/sdb5 311296 413695 51200 83 Linux
/dev/sdb6 415744 496127 40192 83 Linux
#最后別忘了保存!如果你須要的話!
#擴(kuò)展分區(qū)不能直接使用,邏輯分區(qū)只能建立在擴(kuò)展分區(qū)上!
第二步:mkfs(mkfs時(shí)分區(qū)的格式最好與fdisk設(shè)定的分區(qū)格式一致,不然.......)
mkfs支持ext2 ext3 vfa msdos jfs reiserfs等文件系統(tǒng)。
用法1:mkfs -t
例: mkfs -t ext3 /dev/sdb2
用法2:mkfs.
例:mkfs,vfat /dev/sdb3
mke2fs支持ext2/ext3文件系統(tǒng)
用法:mke2fs [-j]
例:mke2fs -j /dev/sdb5
# 更多更具體的用法請(qǐng)參照相關(guān)命令的man手冊(cè)
下面,接著實(shí)驗(yàn):
例一
[root@novice ~]# mkfs -t ext3 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
12824 inodes, 51200 blocks
2560 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=52428800
7 block groups
8192 blocks per group, 8192 fragments per group
1832 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
第三部:掛載
掛載:mount
例:mount /dev/sdb1 /mnt /sdb1
卸載:umonut
例:umount /dev/sdb1
利用空余磁盤擴(kuò)容
1. 首先使用命令fdisk -l 查看磁盤情況,此系統(tǒng)有兩塊硬盤,/dev/xvda 274.9G,/dev/xvdb 10.7G
Linux沒有什么命令可以直接擴(kuò)展磁盤空間。
linux下磁盤和目錄的概念與WIN不同:比如,分了一個(gè)系統(tǒng)分區(qū)默認(rèn)掛載了根(/)目錄,根下還有其它目錄,比如/user /lib等。如果系統(tǒng)分區(qū)不夠用,可以再分出分支,把根下其它目錄分別掛載出來(lái),例如:
/dev/sda2 29222812 20018256 7739724 73% /
/dev/sda4 3856096800 2802714400 860383796 77% /home
根目錄掛載在sda2分區(qū)上,/home目錄掛載在sda4分區(qū)上。/home還在根(/)下,但實(shí)際已經(jīng)不占用sda2分區(qū)的空間了。同理也可以把/user /lib這樣的分區(qū)也分出來(lái),緩解根分區(qū)的壓力。這樣操作的好處是,/home可以作為數(shù)據(jù)分區(qū),即使系統(tǒng)重裝,只要格式化根分區(qū)(上例中sda2即可,基本不影響/home),但缺點(diǎn)也有,容易使磁盤分區(qū)碎片化,不方便管理。另外,最開始分分區(qū)時(shí)也是無(wú)法預(yù)料這個(gè)分區(qū)最終會(huì)使用到多大,慢慢也會(huì)有用完的情況(雖然也可以繼續(xù)把子目錄再掛載出來(lái))
于是,還可以使用lvm工具,邏輯卷。這個(gè)工具可以動(dòng)態(tài)增加磁盤空間。但這個(gè)工具系統(tǒng)默認(rèn)是不安裝的,而且需要先把分區(qū)做成邏輯卷后才能使用。具體方法網(wǎng)上可以搜到好多,此處就不贅述了。