文章目錄
1、Lab1. 建立新的 Mount Point (ex. /backup 1 GB)2、Lab2. 設定 NFS Client
3、Lab3. 設定 NFS Client with Autofs
4、Lab4. 增加 SWAP 空間
5、Me FAQ
Q1.Warning: Unable to open /dev/hdc read-write (Read-only file system). /dev/hdc has been opened read-only.
1、Lab 1. 建立新的 Mount Point (ex. /backup 1 GB)
使用 fdisk -l 指令,確認硬碟代號及類型 (IDE or SATA/SCSI/SAS)。# fdisk –l
Disk /dev/hda: 21.4 GB, 21474754560 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 33 265041 83 Linux
/dev/hda2 34 686 5245222+ 83 Linux
/dev/hda3 687 1339 5245222+ 83 Linux
/dev/hda4 1340 2610 10209307+ 5 Extended
/dev/hda5 1340 1992 5245191 83 Linux
/dev/hda6 1993 2253 2096451 82 Linux swap / Solaris
確定硬碟代號後即可利用 fdisk 指令來進行新增 Mount Point,此例為 /backup 分配空間為 1 GB
- fdisk /dev/hda:進入 fdisk 互動模式。
- p:列出目前硬碟使用狀況。
- n:新增掛載點。
- First cylinder:掛載點開始磁柱數 (按 Enter 即則預設值開始)。
- Last cylinder:掛載點結束磁柱數 (可輸入人類方便辨識的單位例如 +1GB)。
- w:將變更寫入硬碟內:
# fdisk /dev/hda //進入 fdisk 互動模式
The number of cylinders for this disk is set to 2610.
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 //輸入 p 列出目前硬碟使用狀況
Disk /dev/hda: 21.4 GB, 21474754560 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 33 265041 83 Linux
/dev/hda2 34 686 5245222+ 83 Linux
/dev/hda3 687 1339 5245222+ 83 Linux
/dev/hda4 1340 2610 10209307+ 5 Extended
/dev/hda5 1340 1992 5245191 83 Linux
/dev/hda6 1993 2253 2096451 82 Linux swap / Solaris
Command (m for help): n //輸入 n 新增掛載點
First cylinder (2254-2610, default 2254): //掛載點開始磁柱數 (按 Enter 即則預設值開始)
Using default value 2254 //掛載點開始磁柱數
Last cylinder or +size or +sizeM or +sizeK (2254-2610, default 2610): +1GB //掛載點結束磁柱數 (可輸入人類方便辨識的單位例如 +1GB)
Command (m for help): p //輸入 p 列出目前硬碟使用狀況 (確定剛才新增空間的代號,此例為 hda7)
Disk /dev/hda: 21.4 GB, 21474754560 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 33 265041 83 Linux
/dev/hda2 34 686 5245222+ 83 Linux
/dev/hda3 687 1339 5245222+ 83 Linux
/dev/hda4 1340 2610 10209307+ 5 Extended
/dev/hda5 1340 1992 5245191 83 Linux
/dev/hda6 1993 2253 2096451 82 Linux swap / Solaris
/dev/hda7 2254 2376 987966 83 Linux //新增的掛載點 (磁柱數為 2254 ~ 2376)
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: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
新增掛載點完成後輸入 partprobe 指令套用讓系統知道新增此一分割區。
# cat /proc/partitions //未執行 partprobe 前無法看到剛才新增的掛載點 /dev/hda7
major minor #blocks name
3 0 20971440 hda
3 1 265041 hda1
3 2 5245222 hda2
3 3 5245222 hda3
3 4 0 hda4
3 5 5245191 hda5
3 6 2096451 hda6
# partprobe //執行 partprobe 後系統便可辨別新增的掛載點
# cat /proc/partitions
major minor #blocks name
3 0 20971440 hda
3 1 265041 hda1
3 2 5245222 hda2
3 3 5245222 hda3
3 4 0 hda4
3 5 5245191 hda5
3 6 2096451 hda6
3 7 987966 hda7 //可辨別新增的掛載點 /dev/hda7
系統可辨別新增的掛載點後,再來就是對掛載點進行格式化,執行 mkfs.ext3 指令對新增的掛載點進行格式化硬碟標籤為 backup。
# mkfs.ext3 –L backup /dev/hda7 //格式化為 EXT3 標籤為 backup
mke2fs 1.39 (29-May-2006)
Filesystem label=backup
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
123648 inodes, 246991 blocks
12349 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=255852544
8 block groups
32768 blocks per group, 32768 fragments per group
15456 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
# blkid //查看 Block ID
/dev/hdc: LABEL="RHEL/5.3 i386 DVD" TYPE="iso9660"
/dev/hda6: LABEL="SWAP-hda6" TYPE="swap"
/dev/hda5: LABEL="/" UUID="4379ee11-e3dc-4d35-b421-a74a06942774" TYPE="ext3"
/dev/hda1: LABEL="/boot" UUID="4536b014-2198-49cc-ab59-39edc75bf611" TYPE="ext3"
/dev/hda2: LABEL="/var" UUID="1d1d6109-5fc4-4591-bb5d-c32a227b8215" TYPE="ext3"
/dev/hda3: LABEL="/usr" UUID="898a71d5-b689-4487-a6a6-3c729b3971a6" TYPE="ext3"
/dev/cdrom-hdc: LABEL="RHEL/5.3 i386 DVD" TYPE="iso9660"
/dev/hda7: LABEL="backup" UUID="f4f565d1-0de5-4521-81c3-942d0532e8e6" SEC_TYPE="ext2" TYPE="ext3" //格式化後的掛載點 (因為目前沒資料所以有 SEC_TYPE="ext2")
# vi /etc/fstab //修改掛載點設定檔 (新增如下一行,擇一即可)
/dev/hda7 /backup ext3 defaults 1 2 (方式一 掛載點採硬碟裝置名稱)
LABEL=/backup /backup ext3 defaults 1 2 (方式二 掛載點採硬碟標籤)
# mkdir /backup //建立 backup 資料夾
# mount –a //套用,重新讀取 fstab
# df –h
Filesystem Size Used Avail Use% Mounted on
/dev/hda5 4.9G 477M 4.2G 11% /
/dev/hda3 4.9G 2.3G 2.4G 49% /usr
/dev/hda2 4.9G 3.1G 1.6G 68% /var
/dev/hda1 251M 21M 218M 9% /boot
tmpfs 189M 0 189M 0% /dev/shm
/dev/hda7 950M 18M 885M 2% /backup //新增的掛載點 (可開始放資料進去)
2、Lab 2. 設定 NFS Client
設定 NFS Client 將 NFS Server 分享資源 /var/ftp/pub 掛載 (Mount) 至 NFS CLient 本機的 /mnt 下,掛載時本例為使用名稱 server 進行掛載若無法解析也可用 IP Address 進行掛載的動作。# showmount -e server //顯示 NFS Server 分享的資源
/var/ftp/pub 192.168.1.0 //分享目錄及允許 IP (或網段)
# mount server:/var/ftp/pub /mnt //先手動掛載 (順利運作之後再寫入 /etc/fstab)
# umount /mnt //卸載
手動成功掛載後,將設定內容寫入 fstab 內那麼當系統重新開機時便會自動進行掛載,因為是掛載網路分享資源而不是本機資源最後檢查碼使用 0 0 即可。
# vi /etc/fstab //修改掛載點設定檔 (是 nfs 不是 ext3)
server:/var/ftp/pub /mnt nfs defaults 0 0 //使用名析解析進行掛載
192.168.1.254:/var/ftp/pub /mnt nfs defaults 0 0 //使用 IP Address 進行掛載
# mount –a //套用,重新讀取 fstab
# df –h
server:/var/ftp/pub 99M 5.6M 89M 6% /mnt
3、Lab 3. 設定 NFS Client with Autofs
設定 NFS Client 將 NFS Server 分享資源 /var/ftp/pub 掛載 (Mount) 至 NFS CLient 本機的 /mnt 下,配合設定 Autofs 那麼當 NFS Client 一段時間未使用掛載資源時會自動卸載對 NFS Server 的資源,但當 NFS Client 切換到 NFS Server 掛載目前時會自動將資源掛載回來,這樣的機制可以有效減少 NFS Server 負載並預防因為 NFS Server 發生問題時造成 NFS Client 無回應的問題。下列設定僅說明 Autofs 部份關於 NFS Client 設定請參考 Lab2.
# vi /etc/auto.master //autofs 設定檔
/misc /etc/auto.misc
# vi /etc/auto.misc //autofs 設定檔
server –rw,intr,soft server:/var/ftp/pub
# service autofs restart //重新啟動 autofs 服務
設定完成後會將 NFS Server 分享的資源自動掛載路徑為 auto.master 指定的 /misc 加上 auto.misc 指定的 server 目錄,也就是對應到 /misc/server 資料夾。以後當 NFS Client 切換到此路徑 (/misc/server) 時就會自動掛載 NFS Server 分享的資源 (/var/ftp/pub),而當 NFS Client 在一段時間 (預設為 60 秒) 沒有任何動作後就會自動卸載。
# cd /misc/server
# df –h
server.example.com:/var/ftp/pub 99M 5.6M 89M 6% /misc/server
或不用設定直接指定使用 /net + NFS Server 的 Host or IP 即可切換 (但此掛載的前提是 NFS Server 有允許此台主機存取)。
使用名稱解析進行掛載。
# cd /net/server/var/ftp/pub ; df –h //在 net 下是指定 Host or IP
server:/var/ftp/pub 99M 5.6M 89M 6% /net/server/var/ftp/pub
使用 IP Address 進行掛載。
# cd /net/192.168.0.254/var/ftp/pub ; df –h //在 net 下是指定 Host or IP
192.168.0.254:/var/ftp/pub 99M 5.6M 89M 6% /net/116.50.43.81/var/ftp/pub
4、Lab 4. 增加 SWAP 空間
此一實作將硬碟空間中新增 1GB 的 SWAP 空間給目前的系統使用。# fdisk /dev/hda //進入 fdisk 互動模式
The number of cylinders for this disk is set to 2610.
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): n //輸入 n 新增掛載點
First cylinder (2377-2610, default 2377): //掛載點開始磁柱數 (按 Enter 即則預設值開始)
Using default value 2377 //掛載點開始磁柱數
Last cylinder or +size or +sizeM or +sizeK (2377-2610, default 2610): +1GB //掛載點結束磁柱數 (可輸入人類方便辨識的單位例如 +1GB)
Command (m for help): p //輸入 p 列出目前硬碟使用狀況 (確定剛才新增空間的代號,此例為 hda8)
Disk /dev/hda: 21.4 GB, 21474754560 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 33 265041 83 Linux
/dev/hda2 34 686 5245222+ 83 Linux
/dev/hda3 687 1339 5245222+ 83 Linux
/dev/hda4 1340 2610 10209307+ 5 Extended
/dev/hda5 1340 1992 5245191 83 Linux
/dev/hda6 1993 2253 2096451 82 Linux swap / Solaris
/dev/hda7 2254 2376 987966 83 Linux
/dev/hda8 2377 2499 987966 83 Linux //新增的掛載點 (磁柱數為 2377 ~ 2499)
Command (m for help): t //輸入 t 變更磁區的類型
Partition number (1-8): 8 //變更代號為 hda8
Hex code (type L to list codes): 82 //磁區類型 82 為 SWAP (輸入 L 可查看所有可用類型列表)
Changed system type of partition 8 to 82 (Linux swap / Solaris)
Command (m for help): p //輸入 p 列出目前硬碟使用狀況 (確定 hda8 類型為 SWAP)
Disk /dev/hda: 21.4 GB, 21474754560 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 33 265041 83 Linux
/dev/hda2 34 686 5245222+ 83 Linux
/dev/hda3 687 1339 5245222+ 83 Linux
/dev/hda4 1340 2610 10209307+ 5 Extended
/dev/hda5 1340 1992 5245191 83 Linux
/dev/hda6 1993 2253 2096451 82 Linux swap / Solaris
/dev/hda7 2254 2376 987966 83 Linux
/dev/hda8 2377 2499 987966 82 Linux swap / Solaris //類型為 SWAP
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: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
完成新增 1GB 的 SWAP 磁區空間後,接下來是讓系統能辨別此一新增的空間及如何讓系統增加目前空間至 SWAP 中。
# partprobe //執行 partprobe 後系統便可辨別新增的掛載點
# cat /proc/partitions //確認系統便可辨別新增的掛載點 /dev/hda8
major minor #blocks name
3 0 20971440 hda
3 1 265041 hda1
3 2 5245222 hda2
3 3 5245222 hda3
3 4 0 hda4
3 5 5245191 hda5
3 6 2096451 hda6
3 7 987966 hda7
3 8 987966 hda8
# mkswap -L newswap /dev/hda8 //格式化 hda8 為 SWAP (標籤為 newswap)
Setting up swapspace version 1, size = 1011671 kB
LABEL=newswap, no uuid
# blkid //查看 Block ID (確定 Label Name及 Type 為SWAP是否正確)
/dev/hdc: LABEL="RHEL/5.3 i386 DVD" TYPE="iso9660"
/dev/hda6: TYPE="swap" LABEL="SWAP-hda6"
/dev/hda5: LABEL="/" UUID="4379ee11-e3dc-4d35-b421-a74a06942774" TYPE="ext3"
/dev/hda1: LABEL="/boot" UUID="4536b014-2198-49cc-ab59-39edc75bf611" TYPE="ext3"
/dev/hda2: LABEL="/var" UUID="1d1d6109-5fc4-4591-bb5d-c32a227b8215" TYPE="ext3"
/dev/hda3: LABEL="/usr" UUID="898a71d5-b689-4487-a6a6-3c729b3971a6" TYPE="ext3"
/dev/cdrom-hdc: LABEL="RHEL/5.3 i386 DVD" TYPE="iso9660"
/dev/hda7: LABEL="backup" UUID="f4f565d1-0de5-4521-81c3-942d0532e8e6" SEC_TYPE="ext2" TYPE="ext3"
/dev/hda8: LABEL="newswap" TYPE="swap"
# vi /etc/fstab //修改掛載點設定檔 (新增如下一行,擇一即可)
LABEL=newswap swap swap defaults 0 0 //(方式一 掛載點採硬碟標籤)
/dev/hda8 swap swap defaults 0 0 //(方式二 掛載點採硬碟裝置名稱)
# swapon –s //顯示目前 SWAP
Filename Type Size Used Priority
/dev/hda6 partition 2096440 0 -1
# free //查看目前系統實體記憶體及 SWAP 使用狀態 (目前 SWAP 為 2GB)
total used free shared buffers cached
Mem: 385400 327704 57696 0 135488 109420
-/+ buffers/cache: 82796 302604
Swap: 2096440 0 2096440
# swapon –a //重新讀取 /etc/fstab 載入有關 SWAP 的項目
# swapon -s //顯示目前 SWAP 可看到新增的 hda8 加入
Filename Type Size Used Priority
/dev/hda6 partition 2096440 0 -1
/dev/hda8 partition 987956 0 -2
# free //查看目前系統實體記憶體及 SWAP 使用狀態 (SWAP 增加至 3GB)
total used free shared buffers cached
Mem: 385400 328072 57328 0 135576 109420
-/+ buffers/cache: 83076 302324
Swap: 3084396 0 3084396
如何將新增的 SWAP 刪除?
# swapoff –a //把所有 SWAP 都關閉
# swapon -s //顯示目前 SWAP (已關閉所有 SWAP)
# free //查看目前系統實體記憶體及 SWAP 使用狀態 (SWAP 為 0)
total used free shared buffers cached
Mem: 385400 327076 58324 0 135580 109424
-/+ buffers/cache: 82072 303328
Swap: 0 0 0
# vi /etc/fstab //修改掛載點設定檔 (註解 hda8)
/dev/hda8 swap swap defaults 0 0 //註解要關閉的 SWAP 磁區代號
# swapon -a //重新讀取 /etc/fstab 載入有關 SWAP 的項目
# swapon -s //顯示目前 SWAP
Filename Type Size Used Priority
/dev/hda6 partition 2096440 0 -3
# free
total used free shared buffers cached
Mem: 385400 327812 57588 0 135772 109424
-/+ buffers/cache: 82616 302784
Swap: 2096440 0 2096440
關閉新增的 SWAP 空間後再進入 fdisk 互動模式將 hda8 刪除即可。
5、Me FAQ
Q1. Warning: Unable to open /dev/hdc read-write (Read-only file system). /dev/hdc has been opened read-only.
Error Message:執行 partprobe 時出現如下錯誤訊息?
Warning: Unable to open /dev/hdc read-write (Read-only file system)./dev/hdc has been opened read-only.
Ans:
此訊息發生的原因為,您掛載光碟機且光碟機內有光碟片,所以當然是 Read-only file system 只要您將卸載 (umount) 光碟機並且再度執行 partprobe 指令便不會出現此錯誤訊息。