fdisk分区命令详解与fdisk非交互式分区
1.說明:fdisk如何來學習
????fdisk,就是在linux中用來分區的一個命令了,至于詳細的參數,可以man一下,這里給出實際應用過程中最常用的用法,因為這樣比起單純講命令的語法功能更能掌握一個命令的實際用法。
????下面的過程是在我自己的實驗環境中搭建,先把簡要的過程看一下:
(1)添加一塊1GB的磁盤
(2)fdisk詳細分區過程
(3)通知Linux內核分區信息的更改
(4)格式化分區
(5)掛載分區
????OK!我相信這樣一個過程下來,你是真正可以做到添加一塊硬盤,并自己做分區格式化以及使用,這樣的話,意義就真的比單純講fdisk的語法參數要好得多了!
2.實戰演示:從添加硬盤到真正可以使用硬盤
(1)添加一塊1GB的磁盤
我是在虛擬機環境下直接添加的,方法很簡單,這里就不多說了,下面給出在linux下查看該硬盤的信息:
| 1 2 3 4 5 6 7 8 | [root@xpleaf?~]#?fdisk?-l?/dev/sdb ?? Disk?/dev/sdb:?1073?MB,?1073741824bytes 255?heads,?63?sectors/track,?130cylinders Units?=?cylinders?of?16065?*?512?=8225280?bytes Sector?size?(logical/physical):?512bytes?/?512?bytes I/O?size?(minimum/optimal):?512?bytes/?512?bytes Disk?identifier:?0x00000000 |
(2)fdisk詳細分區過程
下面直接給出詳細過程,重要的一些說明在該過程中已經給出,注意看了:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | [root@xpleaf?~]#?fdisk?/dev/sdb?===>直接接磁盤名就可以分區 Device?contains?neither?a?valid?DOSpartition?table,?nor?Sun,?SGI?or?OSF?disklabel Building?a?new?DOS?disklabel?with?diskidentifier?0x7f3aa9cb. Changes?will?remain?in?memory?only,until?you?decide?to?write?them. After?that,?of?course,?the?previouscontent?won't?be?recoverable. ?? Warning:?invalid?flag?0x0000?ofpartition?table?4?will?be?corrected?by?w(rite) ?? WARNING:?DOS-compatible?mode?isdeprecated.?It's?strongly?recommended?to ?????????switch?off?the?mode?(command?'c')?andchange?display?units?to ?????????sectors?(command?'u'). ?? Command?(m?for?help):?m Command?action ??a???toggle?a?bootable?flag ??b???edit?bsd?disklabel ??c???toggle?the?dos?compatibilityflag ??d???delete?a?partition???????????===>刪除一個分區 ??l???list?known?partition?types???===>查看分區類型對應編號列表 ??m???print?this?menu??????????????===>打印此幫助菜單 ??n???add?a?new?partition??????????===>新建一個分區 ??o???create?a?new?empty?DOSpartition?table ??p???print?the?partition?table????===>打印分區表 ??q???quit?without?saving?changes??===>退出但不保存更改 ??s???create?a?new?empty?Sundisklabel ??t???change?a?partition's?system?id???===>更改分區類型(做LVM時需要) ??u???change?display/entry?units ??v???verify?the?partition?table ??w???write?table?to?disk?and?exit?????===>將操作寫入分區表并退出程序 ??x???extra?functionality?(expertsonly) ?? Command?(m?for?help):?n Command?action ??e???extended ??p???primary?partition?(1-4) p???===>新建一個主分區 Partition?number?(1-4):?1???===>指定主分區的分區號碼 First?cylinder?(1-130,?default?1):??===>指定分區開始的柱面號 Usingdefault?value?1 Last?cylinder,?+cylinders?or+size{K,M,G}?(1-130,?default?130):?+100M ===>指定分區結束的柱面號,或者指定分區大小,讓fdisk自動判斷結束柱面號 Command?(m?for?help):?p ?? Disk?/dev/sdb:?1073?MB,?1073741824bytes 255?heads,?63?sectors/track,?130cylinders Units?=?cylinders?of?16065?*?512?=8225280?bytes Sector?size?(logical/physical):?512bytes?/?512?bytes I/O?size?(minimum/optimal):?512?bytes/?512?bytes Disk?identifier:?0x7f3aa9cb ?? ??Device?Boot??????Start?????????End??????Blocks??Id??System /dev/sdb1???????????????1??????????14??????112423+?83??Linux ?? Command?(m?for?help):?n Command?action ??e???extended ??p???primary?partition?(1-4) e???===>新建一個擴展分區 Partition?number?(1-4):?1 Partition?1?is?already?defined.??Delete?it?before?re-adding?it. ===>由于前面已經使用了分區號碼1,所以這里會提示錯誤 Command?(m?for?help):?n Command?action ??e???extended ??p???primary?partition?(1-4) e Partition?number?(1-4):?2 First?cylinder?(15-130,?default?15):? Usingdefault?value?15 Last?cylinder,?+cylinders?or+size{K,M,G}?(15-130,?default?130):? Usingdefault?value?130 ===>分區的開始柱面號和結束柱面號都使用默認值,即把剩余磁盤空間分配給該分區 Command?(m?for?help):?p ?? Disk?/dev/sdb:?1073?MB,?1073741824bytes 255?heads,?63?sectors/track,?130cylinders Units?=?cylinders?of?16065?*?512?=8225280?bytes Sector?size?(logical/physical):?512bytes?/?512?bytes I/O?size?(minimum/optimal):?512?bytes/?512?bytes Disk?identifier:?0x7f3aa9cb ?? ??Device?Boot??????Start?????????End??????Blocks??Id??System /dev/sdb1???????????????1??????????14??????112423+?83??Linux /dev/sdb2??????????????15?????????130??????931770???5??Extended ?? ?? Command?(m?for?help):?n Command?action ??l???logical?(5?or?over)??===>由于擴展分區只能有一個,上面新建擴展分區后 ??p???primary?partition?(1-4)??這里就顯示邏輯分區了,也可以看到fdisk命令, p??????????????????????????????要想新建邏輯分區,需要先新建擴展分區 Partition?number?(1-4):?3 No?free?sectors?available ===>這里還想再新建一個主分區,但是提示已經沒有磁盤空間剩余 Command?(m?for?help):?n Command?action ??l???logical?(5?or?over) ??p???primary?partition?(1-4) l???===>新建一個邏輯分區 First?cylinder?(15-130,?default?15):? Usingdefault?value?15 Last?cylinder,?+cylinders?or+size{K,M,G}?(15-130,?default?130):?+400M ?? Command?(m?for?help):?p ?? Disk?/dev/sdb:?1073?MB,?1073741824bytes 255?heads,?63?sectors/track,?130cylinders Units?=?cylinders?of?16065?*?512?=8225280?bytes Sector?size?(logical/physical):?512bytes?/?512?bytes I/O?size?(minimum/optimal):?512?bytes/?512?bytes Disk?identifier:?0x7f3aa9cb ?? ??Device?Boot??????Start?????????End?????Blocks???Id?System /dev/sdb1???????????????1??????????14??????112423+?83??Linux /dev/sdb2??????????????15?????????130??????931770???5??Extended /dev/sdb5??????????????15??????????66??????417658+?83??Linux ?? Command?(m?for?help):?n Command?action ??l???logical?(5?or?over) ??p???primary?partition?(1-4) l First?cylinder?(67-130,?default?67):? Usingdefault?value?67 Last?cylinder,?+cylinders?or+size{K,M,G}?(67-130,?default?130):? Usingdefault?value?130 ?? Command?(m?for?help):?p ?? Disk?/dev/sdb:?1073?MB,?1073741824bytes 255?heads,?63?sectors/track,?130cylinders Units?=?cylinders?of?16065?*?512?=8225280?bytes Sector?size?(logical/physical):?512bytes?/?512?bytes I/O?size?(minimum/optimal):?512?bytes/?512?bytes Disk?identifier:?0x7f3aa9cb ?? ??Device?Boot??????Start?????????End??????Blocks??Id??System /dev/sdb1???????????????1??????????14??????112423+?83??Linux /dev/sdb2??????????????15?????????130??????931770???5??Extended /dev/sdb5??????????????15??????????66??????417658+?83??Linux /dev/sdb6??????????????67????????130??????514048+??83?Linux ?? Command?(m?for?help):?w?===>保存更改 The?partition?table?has?been?altered! ?? Calling?ioctl()?to?re-read?partitiontable. Syncing?disks. |
OK,可以看到,fdisk的分區方法是非常簡單的,但是前提就是需要你得對硬盤的知識有一定的了解,比如:硬盤的內部結構、磁頭、柱面、扇區等,這些知識都需要非常熟悉才好,不然的話,使用fdisk來分區的話也只是--“霧里看花,水中望月”,掌握原理才是最重要的,而使用命令工具只是為了實現我們的需求,同時也可以加深我們對原理的理解。
(3)通知Linux內核分區信息的更改
| 1 | [root@xpleaf?~]#?partprobe?/dev/sdb |
分區完成后,需要此步驟,否則去使用這些分區時會出現錯誤信息。當然,如果不這樣做的話,也可以采取重新啟動系統的方法。
(4)格式化分區
格式化分區是為了創建文件系統,分配Inode和Block
| 1 2 3 4 5 6 | [root@xpleaf?~]#?mkfs.ext4?/dev/sdb sdb??sdb1??sdb2??sdb5?sdb6?? [root@xpleaf?~]#?mkfs.ext4?/dev/sdb1 …… This?filesystem?will?be?automaticallychecked?every?31?mounts?or 180?days,?whichever?comes?first.??Use?tune2fs?-c?or?-i?to?override. |
最后面提示說系統會定時檢查文件系統,這里不想系統檢查,則可以使用下面的命令:
| 1 2 3 | [root@xpleaf?~]#?tune2fs?-c?-1/dev/sdb1 tune2fs?1.41.12?(17-May-2010) Setting?maximal?mount?count?to?-1 |
(5)掛載分區
| 1 2 3 4 5 6 7 | [root@xpleaf?~]#?mount?/dev/sdb1?/mnt [root@xpleaf?~]#?df?-h Filesystem??????Size?Used?Avail?Use%?Mounted?on /dev/sda3???????9.2G?1.8G??7.0G??21%?/ tmpfs???????????937M?????0?937M???0%?/dev/shm /dev/sda1???????194M??34M??151M??19%?/boot /dev/sdb1???????107M?5.6M???96M???6%?/mnt |
這里的掛載是臨時掛載的,如果需要永久掛載(即開機掛載),則需要修改/etc/fstab文件,這里就不提及了。
OK,通過上面的實戰步驟,實際上已經可以掌握fdisk的用法了,這樣的話以后需要添加硬盤、分區格式化的話,就不會不知道怎么做了吧?
3.拓展:fdisk如何非交互分區???
????從上面的fdisk分區過程可以看到,fidisk使用的是交互式的過程,如果學過parted命令,應該知道parted是可以進行非交互式的分區的,那么這里的問題是,fdisk可以非交互式分區嗎?
????答案是肯定可以的,請參考下面:
(1)將你要在fdisk命令行輸入的命令實現寫入一個文本文件,比如叫做fdisk.txt
(2)然后fdisk.txt的內容類似于這樣:
| 1 2 3 4 5 6 | n p 1 0 100M w |
實際就是我們在交互式時的分區過程(當然這里與我上面的分區并非一樣)
(3)然后用類似如下命令實現自動分區:
| 1 | fdisk?/dev/hda?<?fdiskcmd.txt |
OK!內容就這么多了,看是沒有用,重在實踐,希望可以幫到大家!
本文轉自 xpleaf 51CTO博客,原文鏈接:http://blog.51cto.com/xpleaf/1683385,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的fdisk分区命令详解与fdisk非交互式分区的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: samba安装与配置
- 下一篇: IntelliJ IDEA删除所有断点