fdisk 對硬碟進行分割 (partition)﹔
mkfs 產生檔案系統 (format)﹔
mke2fs 產生 ext2/ext3 檔案系統 (format)﹔
e2label 更改磁碟的表頭資料﹔
fsck, badblocks 對檔案系統進行檢驗(可不做)﹔
mkdir 在 Linux 系統上建立掛載點,即建立要掛載的目錄﹔
mount 進行掛載。
[root@dywOffice ~]# fdisk [option] [裝置名稱] option -l : 直接列出硬碟裝置的 partition table -c : 開閉DOS相容模式 -h : print help -u <size> : 給予sectors大小取代cylinders 範例: 範例一:列出硬碟的 partition table [root@dywOffice ~]# fdisk -l Disk /dev/hda: 80.0 GB, 80032038912 bytes 255 heads, 63 sectors/track, 9730 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 254 2040223+ 83 Linux /dev/hda2 255 9730 76115970 5 Extended /dev/hda5 255 457 1630566 82 Linux swap / Solaris /dev/hda6 458 584 1020096 83 Linux /dev/hda7 585 1603 8185086 83 Linux /dev/hda8 1604 2240 5116671 83 Linux /dev/hda9 2241 5427 25599546 83 Linux /dev/hda10 5428 9730 34563816 83 Linux 範例二:分割 hda 磁碟 [root@dywOffice ~]# fdisk /dev/hda <== 不可加編號 The number of cylinders for this disk is set to 9730. 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): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition <== 刪除 partition l list known partition types <== 列出已知的檔案系統型態 m print this menu <== 顯示此手冊 n add a new partition <== 加入新的 partition o create a new empty DOS partition table p print the partition table <== 列出目前的磁碟分割狀態 q quit without saving changes <== 不儲存離開 fdisk s create a new empty Sun disklabel t change a partition's system id <== 改變檔案系統 id u change display/entry units v verify the partition table <== 確認 partition table w write table to disk and exit <== 寫入 partition table 並退出 (危險) x extra functionality (experts only) ### fdisk 注意事項: # fdisk 最主要的工作為修改 partition tables。 # 硬碟分割錯誤時,只要在 format 前將 partition tables 復原就可將資料救回。 # fdisk 是針對整顆硬碟,所以其後接裝置名稱而非某個 partition (例如 hda 而非 hda1)。 # fdisk 後悔時直接按下 q 取消剛剛的動作。 # 一個硬碟最大的邏輯磁區可以達到 63 號(包含 1 至 4 的 primary partition)。
[root @test /root ]# mkfs [-V] [-t fstype] [fs-options] filesys [blocks] mkfs 是各種格式化指令(mkfs.fstype,例如:mkfs.ext2)的前端指令。 參數 : -V : 詳細顯示模式。 -t : 檔案系統的型式,預設為 ext2。 -c : 製作檔案系統前,檢查該 partition 是否有壞軌。 -l bad_blocks_file : 將壞軌的 block 資料加到檔案 bad_blocks_file。 blocks : 設定 block 的大小。 範例: 範例一:在 /dev/hda5 上建一個 msdos 的檔案系統,同時檢查是否有壞軌存在,並且將過程詳細列出來: [root @test /root]# mkfs -V -t msdos -c /dev/hda5 範例二:在 /dev/hda7 上建一個 ext3 的檔案系統,同時指定 blocks 為 1024 bytes,並且將過程詳細列出來: [root @test /root]# mkfs -V -t ext3 /dev/hda7 1024
[root @test /root ]# mke2fs [-b block-size][-c][-i bytes-per-inode][-j][-L volume-label] 參數: -b :設定 block 的大小,目前支援 1k, 2k, 4k bytes。 -c :檢查錯誤磁碟 -i :設定 inode 值 -j :預設為 ext2 檔案格式,若加入 -j 選項時格式化為 ext3。 -L :設定磁區的 label (表頭名稱) 範例: 範例一:以 mke2fs 預設的條件( ext2 )格式化 /dev/hda5,且名稱為 csie。 [root @test /root]# mke2fs -L "csie" /dev/hda5 範例二:以 mke2fs 預設的條件( ext2 )格式化 /dev/hda5,且過程中檢查硬碟。 [root @test /root]# mke2fs -c /dev/hda5 範例三:以 mke2fs 將 /dev/hda5 格式化為 ext3,且 block 為 2048 bytes, inode 為 256 bytes。 [root @test /root]# mke2fs –j -b 2048 -i 256 /dev/hda5
[root @test /root ]# e2label [/dev/hd...] [label_name] 範例:將檔案系統 /dev/hda1 表頭設定為 CsieHome [root @test /root]# e2label /dev/hda1 CsieHome
[root@linux ~]# fsck [-AtCary] 裝置名稱 參數: -t :指定檢查 filesystem 的 type。 -A :依據 /etc/fstab 的內容,將所有的裝置都掃瞄一次 -a :自動修復檢查到的有問題的磁區,不用一直按 y -r :要讓使用者決定是否需要修復,與 -a 剛好相反 -y :與 -a 類似,但某些 filesystem 僅支援 -y 這個參數 -C :在檢驗過程中,使用長條圖顯示進度 範例: 範例一:顯示個別的 filesystem 的檢驗程式 [root@dywOffice ~]# ll /sbin/fsck* -rwxr-xr-x 1 root root 18616 Aug 22 2006 /sbin/fsck* -rwxr-xr-x 1 root root 11320 Jun 2 04:48 /sbin/fsck.cramfs* -rwxr-xr-x 1 root root 147908 Aug 22 2006 /sbin/fsck.ext2* -rwxr-xr-x 1 root root 147908 Aug 22 2006 /sbin/fsck.ext3* -rwxr-xr-x 1 root root 23364 Jun 2 04:48 /sbin/fsck.minix* 範例二: 檢驗裝置 /dev/hdb5 [root@linux ~]# fsck -C -t ext3 /dev/hdb5 fsck 1.37 (21-Mar-2005) e2fsck 1.37 (21-Mar-2005) logical: clean, 11/181056 files, 21706/361446 blocks # 每個掛載點都會有一個預設目錄 lost+found。 # fsck 若發現任何錯誤的檔案,就會將該檔案的資料存到目錄 lost+found。 # 通常只有 root 且系統有問題的時候才使用 fsck,在正常狀況下使用,可能會造成對檔案的危害。 # 執行 fsck 時被檢查的 partiton 必須在卸載狀態。
[root@linux ~]# badblocks -[sv] 裝置名稱 參數: -s :在螢幕上列出進度 -v :可以在螢幕上看到進度 範例: [root@dywOffice ~]# badblocks -sv /dev/hda6 Checking blocks 0 to 1020096 Checking for bad blocks (read-only test): done Pass completed, 0 bad blocks found.
[root@kvm8 ~]# fdisk -uc /dev/vda Command (m for help): p Disk /dev/vda: 1503 MB, 1503238144 bytes 16 heads, 63 sectors/track, 2912 cylinders, total 2936012 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: 0x0005e0d8 Device Boot Start End Blocks Id System /dev/vda1 * 2048 198655 98304 83 Linux /dev/vda2 198656 2820095 1310720 8e Linux LVM Command (m for help): n Command action e extended p primary partition (1-4) e Partition number (1-4): 4 First sector (2820096-2936011, default 2820096): Using default value 2820096 Last sector, +sectors or +size{K,M,G} (2820096-2936011, default 2936011): Using default value 2936011 Command (m for help): n Command action l logical (5 or over) p primary partition (1-4) l First sector (2822144-2936011, default 2822144): Using default value 2822144 Last sector, +sectors or +size{K,M,G} (2822144-2936011, default 2936011): +20M Command (m for help): p Disk /dev/vda: 1503 MB, 1503238144 bytes 16 heads, 63 sectors/track, 2912 cylinders, total 2936012 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: 0x0005e0d8 Device Boot Start End Blocks Id System /dev/vda1 * 2048 198655 98304 83 Linux /dev/vda2 198656 2820095 1310720 8e Linux LVM /dev/vda4 2820096 2936011 57958 5 Extended /dev/vda5 2822144 2863103 20480 83 Linux Command (m for help): t Partition number (1-5): 5 Hex code (type L to list codes): 82 Changed system type of partition 5 to 82 (Linux swap / Solaris) Command (m for help): p Disk /dev/vda: 1503 MB, 1503238144 bytes 16 heads, 63 sectors/track, 2912 cylinders, total 2936012 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: 0x0005e0d8 Device Boot Start End Blocks Id System /dev/vda1 * 2048 198655 98304 83 Linux /dev/vda2 198656 2820095 1310720 8e Linux LVM /dev/vda4 2820096 2936011 57958 5 Extended /dev/vda5 2822144 2863103 20480 82 Linux swap / Solaris 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 or after you run partprobe(8) or kpartx(8) Syncing disks. [root@kvm8 ~]# partprobe Warning: WARNING: the kernel failed to re-read the partition table on /dev/vda (Device or resource busy). As a result, it may not reflect all of your changes until after reboot. [root@kvm8 ~]# reboot [root@kvm8 ~]# mkswap /dev/vda5 Setting up swapspace version 1, size = 20476 KiB no label, UUID=0276d17b-c8b2-4df8-b2d1-ed185de40ee9 [root@kvm8 ~]# vim /etc/fstab /dev/vda5 swap swap defaults 0 0 [root@kvm8 ~]# swapon -a swapon: /dev/mapper/vg_kvmusb-swap: swapon failed: Device or resource busy [root@kvm8 ~]# swapon -s Filename Type Size Used Priority /dev/dm-0 partition 49144 0 -1 /dev/vda5 partition 20472 0 -2