Linux文件系统及磁盘分区与格式化(二次排版)
Linux 的文件系統(tǒng)
磁盤物理組成
? ? ? ? ? ? ?
?磁盤的組成與分區(qū): ?由圖中可以看到磁盤中存儲(chǔ)數(shù)據(jù)的部件為圓形的盤片(磁盤主要記錄數(shù)據(jù)的部分)。
盤片的結(jié)構(gòu)
? ? ?而磁盤的物理組成如圖所示,主要由扇區(qū)組成,扇區(qū)(sector)為最小的物理存儲(chǔ)單元,每個(gè)扇區(qū)為512bytes;將扇區(qū)組成一個(gè)圓,那就是柱面(Cylinder),柱面是分區(qū)(partition)的最小單位; 磁盤的第一個(gè)扇區(qū)很重要,里面有硬盤主引導(dǎo)記錄(MBR)以及分區(qū)表(partition table ),其中MBR占有446bytes,而分區(qū)表占有64bytes。
磁盤在linux系統(tǒng)中的存在方式
? ? ? ? ? 市面上的各種接口的磁盤在LINUX系統(tǒng)當(dāng)中是以文件形式存在的(Linux 一切皆文件)。 ?SCSI、SATA、USB、Flash等接口的磁盤在LINUX系統(tǒng)當(dāng)中的文件名:/dev/sd[a-p][1-15] ?IDE接口的磁盤在LINUX系統(tǒng)當(dāng)中的文件名:/dev/hd[a-d][1-63] ?上面中括號(hào)中的字母表示磁盤的序號(hào),如sda ,sdb 等。而數(shù)字表示某一磁盤的某一分區(qū),如/dev/sda2表示磁盤sba的2號(hào)分區(qū); ? ? ? ? ?
?
磁盤的概念
?上文中一直提到一個(gè)叫做“磁盤分區(qū)”的概念,那么什么是磁盤分區(qū)呢,所謂磁盤分區(qū)即指定分區(qū)的起始與結(jié)束柱面,說白了就類似于古代的×××圈地,我看中了某一片地,于是告訴地主(操作系統(tǒng))從哪到哪這片地我要了(即指定分區(qū)的起始與結(jié)束柱面)。 ?那么指定分區(qū)的柱面范圍記錄在哪里呢?就是第一個(gè)山區(qū)的分區(qū)表中。但是因?yàn)榉謪^(qū)表僅有64bytes ,所以最多只能記錄4條分區(qū)記錄,這四條記錄我們稱為主分區(qū)(primary)或拓展分區(qū)(extended),其中拓展分區(qū)是不能存儲(chǔ)數(shù)據(jù)的,只有從其中分出邏輯分區(qū)(logical),才能存儲(chǔ)數(shù)據(jù)。 由于操作系統(tǒng)的限制,拓展分區(qū)只能有一個(gè),而在linux系統(tǒng)中,IDE硬盤最多有59個(gè)邏輯分區(qū)(5號(hào)到63號(hào)),SATA硬盤則有11個(gè)邏輯分區(qū)(5號(hào)到15號(hào))。 ?
磁盤分區(qū)
? ? ? ? 上面講道理一些磁盤組成與分區(qū)的基本知識(shí),那么如果我現(xiàn)在有一塊硬盤,在linux系統(tǒng)下要怎樣對(duì)它分區(qū)呢? ?在linux系統(tǒng)下對(duì)硬盤分區(qū)有二類方式,圖形界面下分區(qū)與命令行下分區(qū),在這里我們講解在命令行下對(duì)硬盤進(jìn)行分區(qū)。 ?linux系統(tǒng)有三大分區(qū)管理工具:fdisk, parted, sfdisk ?fdisk是我們最常用的分區(qū)管理工具,fdisk對(duì)于一塊硬盤來講,最多只能管理15分區(qū);在命令行下我們可以使用fdisk 命令帶 -l 選項(xiàng)來查看機(jī)器所掛硬盤個(gè)數(shù)及分區(qū)情況。?
[root@localhost?~]#?fdisk?-l磁盤?/dev/sdb:21.5?GB,?21474836480?字節(jié),41943040?個(gè)扇區(qū) Units?=?扇區(qū)?of?1?*?512?=?512?bytes 扇區(qū)大小(邏輯/物理):512?字節(jié)?/?512?字節(jié) I/O?大小(最小/最佳):512?字節(jié)?/?512?字節(jié)磁盤?/dev/sda:21.5?GB,?21474836480?字節(jié),41943040?個(gè)扇區(qū) Units?=?扇區(qū)?of?1?*?512?=?512?bytes 扇區(qū)大小(邏輯/物理):512?字節(jié)?/?512?字節(jié) I/O?大小(最小/最佳):512?字節(jié)?/?512?字節(jié) 磁盤標(biāo)簽類型:dos 磁盤標(biāo)識(shí)符:0x00064131設(shè)備?Boot??????Start?????????End??????Blocks???Id??System /dev/sda1???*????????2048?????1026047??????512000???83??Linux /dev/sda2?????????1026048????41943039????20458496???8e??Linux?LVM? ? ? ?從中我們可以看出當(dāng)前機(jī)器有倆快硬盤,一塊已經(jīng)分區(qū)(sda),一塊還沒有(sdb)。 ?fdisk命令的使用格式如下: ? ? ??
?????? ? ? ? ?fdisk device ? ? ?
????????????????????子命令:管理功能
p: print, 顯示已有分區(qū);
n: new, 創(chuàng)建
d: delete, 刪除
w: write, 寫入磁盤并退出
q: quit, 放棄更新并退出
m: 獲取幫助
l: 列表所分區(qū)id
t: 調(diào)整分區(qū)id
? ? ?
? ? 在此我們要對(duì)磁盤sdb進(jìn)行分區(qū),首先 鍵入fdisk /dev/sdb 命令 開始對(duì)sdb進(jìn)行分區(qū)
???[root@localhost?~]#?fdisk?/dev/sdb歡迎使用?fdisk?(util-linux?2.23.2)。更改將停留在內(nèi)存中,直到您決定將更改寫入磁盤。使用寫入命令前請(qǐng)三思。Device?does?not?contain?a?recognized?partition?table使用磁盤標(biāo)識(shí)符?0x1550511f?創(chuàng)建新的?DOS?磁盤標(biāo)簽。命令(輸入?m?獲取幫助):? ? ?然后輸入n 新建一個(gè)分區(qū) ? ?
??????命令(輸入?m?獲取幫助):nPartition?type:p???primary?(0?primary,?0?extended,?4?free)e???extendedSelect?(default?p):? ? ? ? ? 這里會(huì)出現(xiàn)一個(gè)提示讓你選擇創(chuàng)建的分區(qū)類型,主分區(qū)還是拓展分區(qū),默認(rèn)為主分區(qū)。 ? ?這里我們輸入p 建立一個(gè)主分區(qū)。 ? ?
????????Select?(default?p):?p分區(qū)號(hào)?(1-4,默認(rèn)?1):? ? ?這里會(huì)讓你輸入分區(qū)號(hào),默認(rèn)為1,分區(qū)號(hào)從5開始是留給邏輯分區(qū)的。 ? 這里我們直接回車默認(rèn)分區(qū)號(hào)為1。
????????分區(qū)號(hào)?(1-4,默認(rèn)?1):起始?扇區(qū)?(2048-41943039,默認(rèn)為?2048):?接下來會(huì)讓你輸入分區(qū)的起始扇區(qū),我們直接回車默認(rèn)為2048.
????????起始?扇區(qū)?(2048-41943039,默認(rèn)為?2048):將使用默認(rèn)值?2048Last?扇區(qū),?+扇區(qū)?or?+size{K,M,G}?(2048-41943039,默認(rèn)為?41943039):? ? ? 在這一步會(huì)讓你輸入分區(qū)的大小,有倆種輸入方式,輸入結(jié)束扇區(qū)數(shù)或直接輸入分區(qū)大小(后跟單位K,M,G前跟+號(hào))。 ?這里我們給第一個(gè)分區(qū)10G空間。
????Last?扇區(qū),?+扇區(qū)?or?+size{K,M,G}?(2048-41943039,默認(rèn)為?41943039):+10G分區(qū)?1?已設(shè)置為?Linux?類型,大小設(shè)為?10?GiB命令(輸入?m?獲取幫助):?自此一個(gè)分區(qū)劃分完畢,我們輸入p 顯示已有分區(qū)。
????????磁盤?/dev/sdb:21.5?GB,?21474836480?字節(jié),41943040?個(gè)扇區(qū)Units?=?扇區(qū)?of?1?*?512?=?512?bytes扇區(qū)大小(邏輯/物理):512?字節(jié)?/?512?字節(jié)I/O?大小(最小/最佳):512?字節(jié)?/?512?字節(jié)磁盤標(biāo)簽類型:dos磁盤標(biāo)識(shí)符:0x97df264f設(shè)備?Boot??????Start?????????End??????Blocks???Id??System/dev/sdb1????????????2048????20973567????10485760???83??Linux?在你劃分好分區(qū)以后一定要注意,要輸入w 保存分區(qū)信息并退出,否則你就白干了,如果你沒有保存分區(qū)信息直接輸入q退出,那么你再輸入fdisl -l 查看機(jī)器所掛硬盤個(gè)數(shù)及分區(qū)情況時(shí)
[root@localhost?~]#?fdisk?-l磁盤?/dev/sdb:21.5?GB,?21474836480?字節(jié),41943040?個(gè)扇區(qū)Units?=?扇區(qū)?of?1?*?512?=?512?bytes扇區(qū)大小(邏輯/物理):512?字節(jié)?/?512?字節(jié)I/O?大小(最小/最佳):512?字節(jié)?/?512?字節(jié)磁盤?/dev/sda:21.5?GB,?21474836480?字節(jié),41943040?個(gè)扇區(qū)Units?=?扇區(qū)?of?1?*?512?=?512?bytes扇區(qū)大小(邏輯/物理):512?字節(jié)?/?512?字節(jié)I/O?大小(最小/最佳):512?字節(jié)?/?512?字節(jié)磁盤標(biāo)簽類型:dos磁盤標(biāo)識(shí)符:0x00064131設(shè)備?Boot??????Start?????????End??????Blocks???Id??System/dev/sda1???*????????2048?????1026047??????512000???83??Linux/dev/sda2?????????1026048????41943039????20458496???8e??Linux?LVM?你的勞動(dòng)沒有效果,一切都付之東流了。 ?一定一定要記得輸入w 保存退出,如下
????????命令(輸入?m?獲取幫助):wThe?partition?table?has?been?altered!Calling?ioctl()?to?re-read?partition?table.正在同步磁盤。? ?其他分區(qū)劃分方式類似,如下劃分倆個(gè)邏輯分區(qū)。
????命令(輸入?m?獲取幫助):nPartition?type:p???primary?(1?primary,?0?extended,?3?free)e???extendedSelect?(default?p):?e分區(qū)號(hào)?(2-4,默認(rèn)?2):2起始?扇區(qū)?(20973568-41943039,默認(rèn)為?20973568):將使用默認(rèn)值?20973568Last?扇區(qū),?+扇區(qū)?or?+size{K,M,G}?(20973568-41943039,默認(rèn)為?41943039):+5G分區(qū)?2?已設(shè)置為?Extended?類型,大小設(shè)為?5?GiB命令(輸入?m?獲取幫助):nPartition?type:p???primary?(1?primary,?1?extended,?2?free)l???logical?(numbered?from?5)Select?(default?p):?l添加邏輯分區(qū)?5起始?扇區(qū)?(20975616-31459327,默認(rèn)為?20975616):將使用默認(rèn)值?20975616Last?扇區(qū),?+扇區(qū)?or?+size{K,M,G}?(20975616-31459327,默認(rèn)為?31459327):+5G值超出范圍。Last?扇區(qū),?+扇區(qū)?or?+size{K,M,G}?(20975616-31459327,默認(rèn)為?31459327):+4G分區(qū)?5?已設(shè)置為?Linux?類型,大小設(shè)為?4?GiB命令(輸入?m?獲取幫助):p磁盤?/dev/sdb:21.5?GB,?21474836480?字節(jié),41943040?個(gè)扇區(qū)Units?=?扇區(qū)?of?1?*?512?=?512?bytes扇區(qū)大小(邏輯/物理):512?字節(jié)?/?512?字節(jié)I/O?大小(最小/最佳):512?字節(jié)?/?512?字節(jié)磁盤標(biāo)簽類型:dos磁盤標(biāo)識(shí)符:0x97df264f設(shè)備?Boot??????Start?????????End??????Blocks???Id??System/dev/sdb1????????????2048????20973567????10485760???83??Linux/dev/sdb2????????20973568????31459327?????5242880????5??Extended/dev/sdb5????????20975616????29364223?????4194304???83??Linux命令(輸入?m?獲取幫助):?大家不知有沒有注意到在你的分區(qū)信息中有一個(gè)id 項(xiàng),這是個(gè)什么東東? 查看分區(qū)id的方法,在 命令(輸入 m 獲取幫助):下直接輸入l
命令(輸入?m?獲取幫助):l0??空??????????????24??NEC?DOS?????????81??Minix?/?舊?Linu?bf??Solaris????????1??FAT12???????????27??隱藏的?NTFS?Win?82??Linux?交換?/?So?c1??DRDOS/sec?(FAT-2??XENIX?root??????39??Plan?9??????????83??Linux???????????c4??DRDOS/sec?(FAT-3??XENIX?usr???????3c??PartitionMagic??84??OS/2?隱藏的?C:??c6??DRDOS/sec?(FAT-4??FAT16<32M??????40??Venix?80286?????85??Linux?擴(kuò)展??????c7??Syrinx?????????5??擴(kuò)展????????????41??PPC?PReP?Boot???86??NTFS?卷集???????da??非文件系統(tǒng)數(shù)據(jù)?6??FAT16???????????42??SFS?????????????87??NTFS?卷集???????db??CP/M?/?CTOS?/?.7??HPFS/NTFS/exFAT?4d??QNX4.x??????????88??Linux?純文本????de??Dell?工具??????8??AIX?????????????4e??QNX4.x?第2部分??8e??Linux?LVM???????df??BootIt?????????9??AIX?可啟動(dòng)??????4f??QNX4.x?第3部分??93??Amoeba??????????e1??DOS?訪問???????a??OS/2?啟動(dòng)管理器?50??OnTrack?DM??????94??Amoeba?BBT??????e3??DOS?R/O????????b??W95?FAT32???????51??OnTrack?DM6?Aux?9f??BSD/OS??????????e4??SpeedStor??????c??W95?FAT32?(LBA)?52??CP/M????????????a0??IBM?Thinkpad?休?eb??BeOS?fs????????e??W95?FAT16?(LBA)?53??OnTrack?DM6?Aux?a5??FreeBSD?????????ee??GPT????????????f??W95?擴(kuò)展?(LBA)??54??OnTrackDM6??????a6??OpenBSD?????????ef??EFI?(FAT-12/16/ 10??OPUS????????????55??EZ-Drive????????a7??NeXTSTEP????????f0??Linux/PA-RISC?? 11??隱藏的?FAT12????56??Golden?Bow??????a8??Darwin?UFS??????f1??SpeedStor?????? 12??Compaq?診斷?????5c??Priam?Edisk?????a9??NetBSD??????????f4??SpeedStor?????? 14??隱藏的?FAT16?<3?61??SpeedStor???????ab??Darwin?啟動(dòng)?????f2??DOS?次要??????? 16??隱藏的?FAT16????63??GNU?HURD?or?Sys?af??HFS?/?HFS+??????fb??VMware?VMFS???? 17??隱藏的?HPFS/NTF?64??Novell?Netware??b7??BSDI?fs?????????fc??VMware?VMKCORE? 18??AST?智能睡眠????65??Novell?Netware??b8??BSDI?swap???????fd??Linux?raid?自動(dòng) 1b??隱藏的?W95?FAT3?70??DiskSecure?多啟?bb??Boot?Wizard?隱??fe??LANstep???????? 1c??隱藏的?W95?FAT3?75??PC/IX???????????be??Solaris?啟動(dòng)????ff??BBT???????????? 1e??隱藏的?W95?FAT1?80??舊?Minix???????命令(輸入?m?獲取幫助):分區(qū)已經(jīng)創(chuàng)建完成,此時(shí)這個(gè)分區(qū)就真的已經(jīng)存在了嘛?難道不是嘛,我已經(jīng)看到它的分區(qū)信息了呀。 NO,NO ,NO 因?yàn)槭褂胒disk 快速分區(qū),需要重啟電腦,否則內(nèi)核無法識(shí)別到新的分區(qū)。 這時(shí)我們可以采取另一種方法,使用partx命令通知內(nèi)核重新讀取硬盤分區(qū)表: ? ?語法 ? ?partx [-a|-d|-l] [--type TYPE] [--nr M-N] [partition] disk ? ? ? 選項(xiàng)
-a ? ? ? ? 增加制定的分區(qū)或讀磁盤新增的分區(qū)
-d ? ? ? ? 刪除制定或所有的分區(qū)
-l ? ? ? ? 列出分區(qū)
--type ? ? 指定分區(qū)類型。dos,bsd,solaris,unix,或者gpt
--nr M-N ? 指定分區(qū)范圍
現(xiàn)在我們可以向分區(qū)存儲(chǔ)內(nèi)容了吧。
? 顯然不能,會(huì)報(bào)錯(cuò)的,為什么呢?因?yàn)槲覀冞€沒對(duì)分區(qū)進(jìn)行格式化(format)。 為什么需要進(jìn)行格式化呢?這是因?yàn)槊糠N操作系統(tǒng)所設(shè)置的文件屬性/權(quán)限并不相同,為了存放這些文件所需的數(shù)據(jù),因此就需要將分區(qū)進(jìn)行格式化,以成為操作系統(tǒng)能夠利用的文件系統(tǒng)格式。 ? 既然提到了文件系統(tǒng)那么都有那些文件系統(tǒng)呢? ? ?
?Linux文件系統(tǒng):
ext2, ext3, ext4, xfs, btrfs, reiserfs, jfs, swap
swap: 交換分區(qū)
光盤:iso9660
Windows:
fat32, ntfs
Unix:
FFS, UFS, JFS2
? ? ? ? ? ? ? ? 網(wǎng)絡(luò)文件系統(tǒng):NFS, CIFS
分布式文件系統(tǒng):ceph, moosefs, mogilefs, GlusterFS, Lustre
集群文件系統(tǒng):GFS2, OCFS2
根據(jù)其是否支持"journal"功能:
日志型文件系統(tǒng): ext3, ext4, xfs, ...
非日志型文件系統(tǒng): ext2, vfat
? ? ?
inode,block,super block
那么文件系統(tǒng)是如何運(yùn)行的呢?這與操作系統(tǒng)的文件數(shù)據(jù)有關(guān)。較新的操作系統(tǒng)的文件數(shù)據(jù)除了文件實(shí)際內(nèi)容外,通常含有非常多的屬性,例如linux操作系統(tǒng)的文件權(quán)限,與文件屬性。文件系統(tǒng)通常會(huì)將這兩部分的數(shù)據(jù)分別存放在不同的塊,權(quán)限與屬性放置到inode中,至于實(shí)際的數(shù)據(jù)則放置到data block 塊中。另外還有一個(gè)超級(jí)塊(superblock)會(huì)記錄記錄整個(gè)文件系統(tǒng)的整體信息,包括inode與block的總量、使用量、剩余量等。 ? 每個(gè)inode與block都有編號(hào),至于這三個(gè)數(shù)據(jù)的意義可以簡略說明如下: ? superblock :記錄文件系統(tǒng)的整體信息,包括文件系統(tǒng)inode/block 的總量、使用量、剩余量以及文件系統(tǒng)的格式與相關(guān)信息等; ? ? ? 可以通過dumpe2fs查看超級(jí)塊信息 ? ? ? ? ? ? ? ? dumpe2fs:-h 設(shè)備文件名 ? ? ? 如: ? ?
[root@localhost?~]#?dumpe2fs?-h?/dev/sdb dumpe2fs?1.42.9?(28-Dec-2013) Filesystem?volume?name:Last?mounted?on:Filesystem?UUID:??????????27a699ec-aeb5-45c9-997a-5ca47af333c0 Filesystem?magic?number:??0xEF53 Filesystem?revision?#:????1?(dynamic) Filesystem?features:??????has_journal?ext_attr?resize_inode?dir_index?filetype?extent?64bit?flex_bg?sparse_super?large_file?huge_file?uninit_bg?dir_nlink?extra_isize Filesystem?flags:?????????signed_directory_hash? Default?mount?options:????user_xattr?acl Filesystem?state:?????????clean Errors?behavior:??????????Continue Filesystem?OS?type:???????Linux Inode?count:??????????????1310720 Block?count:??????????????5242880 Reserved?block?count:?????262144 Free?blocks:??????????????5116558 Free?inodes:??????????????1310709 First?block:??????????????0 Block?size:???????????????4096 Fragment?size:????????????4096 Group?descriptor?size:????64 Reserved?GDT?blocks:??????1024 Blocks?per?group:?????????32768 Fragments?per?group:??????32768 Inodes?per?group:?????????8192 Inode?blocks?per?group:???512 Flex?block?group?size:????16 Filesystem?created:???????Wed?Dec?23?21:39:32?2015 Last?mount?time:??????????n/a Last?write?time:??????????Wed?Dec?23?21:39:56?2015 Mount?count:??????????????0 Maximum?mount?count:??????-1 Last?checked:?????????????Wed?Dec?23?21:39:32?2015 Check?interval:???????????0?() Lifetime?writes:??????????132?MB Reserved?blocks?uid:??????0?(user?root) Reserved?blocks?gid:??????0?(group?root) First?inode:??????????????11 Inode?size: ??????????256 Required?extra?isize:?????28 Desired?extra?isize:??????28 Journal?inode:????????????8 Default?directory?hash:???half_md4 Directory?Hash?Seed:??????1bc9fae0-4477-46a3-9e89-5bceedb64907 Journal?backup:???????????inode?blocks Journal?superblock?magic?number?invalid!? ?
VFS
如此多的文件系統(tǒng),那么linux的內(nèi)核又是如何管理這些認(rèn)識(shí)的文件系統(tǒng)呢?其實(shí)整個(gè)linux系統(tǒng)都是通過VFS(虛擬文件系統(tǒng))的內(nèi)核功能區(qū)讀取文件系統(tǒng)的。也就是說,整個(gè)linux認(rèn)識(shí)的文件系統(tǒng)其實(shí)都是VFS在進(jìn)行管理,我們用戶并不需要知道每個(gè)分區(qū)上頭的文件系統(tǒng)是什么,VFS會(huì)主動(dòng)幫我們做好讀取的操作。
? ?
磁盤格式化
在羅嗦了一些關(guān)于文件系統(tǒng)的知識(shí)以后,現(xiàn)在我們進(jìn)入文件系統(tǒng)的格式化。格式化的方法非常簡單,那就是使用linux文件系統(tǒng)的用戶空間的管理工具:mkfs命令。
? mkfs命令的兩種用法: ? (1) # mkfs.FS_TYPE /dev/DEVICE
? ? ? ? ? ? ? ? ext4 xfs btrfs vfat
? ? (2) # mkfs -t FS_TYPE /dev/DEVICE
? ? ? ? ? ? ? ? -L 'LABEL': 設(shè)定卷標(biāo)
范例:
[root@localhost?~]#?mkfs.ext4?/dev/sdb1 mke2fs?1.42.9?(28-Dec-2013) 文件系統(tǒng)標(biāo)簽=??????????????????????????????????#分區(qū)的名稱既卷標(biāo) OS?type:?Linux 塊大小=4096?(log=2)????????????????????????????#block大小 分塊大小=4096?(log=2) Stride=0?blocks,?Stripe?width=0?blocks 655360?inodes,?2621440?blocks??????????????????#由此設(shè)置決定的inode/block數(shù)量 131072?blocks?(5.00%)?reserved?for?the?super?user 第一個(gè)數(shù)據(jù)塊=0 Maximum?filesystem?blocks=2151677952 80?block?groups 32768?blocks?per?group,?32768?fragments?per?group 8192?inodes?per?group Superblock?backups?stored?on?blocks:?32768,?98304,?163840,?229376,?294912,?819200,?884736,?1605632Allocating?group?tables:?完成???????????????????????????? 正在寫入inode表:?完成???????????????????????????? Creating?journal?(32768?blocks):?完成 Writing?superblocks?and?filesystem?accounting?information:?完成?[root@localhost?~]#?mkfs.ext4?/dev/sdb2 mke2fs?1.42.9?(28-Dec-2013) mkfs.ext4:?inode_size?(128)?*?inodes_count?(0)?too?big?for?afilesystem?with?0?blocks,?specify?higher?inode_ratio?(-i)or?lower?inode?count?(-N).[root@localhost?~]#?mkfs.ext4?/dev/sdb5 mke2fs?1.42.9?(28-Dec-2013) 文件系統(tǒng)標(biāo)簽= OS?type:?Linux 塊大小=4096?(log=2) 分塊大小=4096?(log=2) Stride=0?blocks,?Stripe?width=0?blocks 262144?inodes,?1048576?blocks 52428?blocks?(5.00%)?reserved?for?the?super?user 第一個(gè)數(shù)據(jù)塊=0 Maximum?filesystem?blocks=1073741824 32?block?groups 32768?blocks?per?group,?32768?fragments?per?group 8192?inodes?per?group Superblock?backups?stored?on?blocks:?32768,?98304,?163840,?229376,?294912,?819200,?884736Allocating?group?tables:?完成???????????????????????????? 正在寫入inode表:?完成???????????????????????????? Creating?journal?(32768?blocks):?完成 Writing?superblocks?and?filesystem?accounting?information:?完成?上面在將sdb格式化為ext4文件系統(tǒng)的例子中,可以發(fā)現(xiàn)結(jié)果里有非常多的信息,由于我們沒有指定文件系統(tǒng)的這些具體信息的具體內(nèi)容,因此系統(tǒng)會(huì)使用默認(rèn)值來進(jìn)行格式化。其中比較重要的部分為:卷標(biāo)(label)、block塊的大小以及inodede數(shù)量。如果要在格式化時(shí)同時(shí)設(shè)置這些值,就要使用ext系列文件系統(tǒng)專用管理工具:mke2fs ? ?mke2fs:ext系列文件系統(tǒng)專用管理工具
-t {ext2|ext3|ext4}
-b {1024|2048|4096} 設(shè)置block大小
-L 'LABEL' ? ? ? ? ?設(shè)置卷標(biāo)
-j: 相當(dāng)于 -t ext3 (當(dāng)沒有指定-j選項(xiàng)時(shí),mke2fs使用ext2 為格式化文 ? ? ? ? ? ? ? ? ? ? ? ? 件格式 ,如加入-j 時(shí),則格式化為ext3這個(gè)Journaling(日志記錄)的文件 ? ? ? ? ? ? ? ? ? ? ? ? 系統(tǒng)) mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #: 為數(shù)據(jù)空間中每多少個(gè)字節(jié)創(chuàng)建一個(gè)inode;此大小不應(yīng)該小于block ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?的大小;
-N #:為數(shù)據(jù)空間創(chuàng)建個(gè)多少個(gè)inode;
-m #: 為管理人員預(yù)留的空間占據(jù)的百分比;
? ? ? ? ? ? ? ? -O FEATURE[,...]:啟用指定特性 -O ^FEATURE:關(guān)閉指定特性
范例:格式化sdb為ext3文件系統(tǒng),卷標(biāo)為L5,block為2048,每8192bytes分配一個(gè)inode ;
??[root@localhost?~]#?mke2fs?-i?8192?-L?L5?-b?2048?-j?/dev/sdb5? mke2fs?1.42.9?(28-Dec-2013) 文件系統(tǒng)標(biāo)簽=L5 OS?type:?Linux 塊大小=2048?(log=1) 分塊大小=2048?(log=1) Stride=0?blocks,?Stripe?width=0?blocks 524288?inodes,?2097152?blocks 104857?blocks?(5.00%)?reserved?for?the?super?user 第一個(gè)數(shù)據(jù)塊=0 Maximum?filesystem?blocks=538968064 128?block?groups 16384?blocks?per?group,?16384?fragments?per?group 4096?inodes?per?group Superblock?backups?stored?on?blocks:?16384,?49152,?81920,?114688,?147456,?409600,?442368,?802816,?1327104,?2048000Allocating?group?tables:?完成???????????????????????????? 正在寫入inode表:?完成???????????????????????????? Creating?journal?(32768?blocks):?完成 Writing?superblocks?and?filesystem?accounting?information:?完成???[root@localhost?~]#大家在學(xué)習(xí)安裝linux系統(tǒng)時(shí)有時(shí)會(huì)在圖形界面下創(chuàng)建一個(gè)swap(內(nèi)存交換空間),那么在命令行下要如何用命令創(chuàng)建一個(gè)swap分區(qū)呢?四步即可搞定。 第一步: ? ? 分區(qū):
[root@localhost?~]#?fdisk?/dev/sdb 歡迎使用?fdisk?(util-linux?2.23.2)。更改將停留在內(nèi)存中,直到您決定將更改寫入磁盤。 使用寫入命令前請(qǐng)三思。命令(輸入?m?獲取幫助):n Partition?type:p???primary?(1?primary,?1?extended,?2?free)l???logical?(numbered?from?5) Select?(default?p):? Using?default?response?p 分區(qū)號(hào)?(3,4,默認(rèn)?3): 起始?扇區(qū)?(31459328-41943039,默認(rèn)為?31459328): 將使用默認(rèn)值?31459328 Last?扇區(qū),?+扇區(qū)?or?+size{K,M,G}?(31459328-41943039,默認(rèn)為?41943039): 將使用默認(rèn)值?41943039 分區(qū)?3?已設(shè)置為?Linux?類型,大小設(shè)為?5?GiB命令(輸入?m?獲取幫助):l0??空??????????????24??NEC?DOS?????????81??Minix?/?舊?Linu?bf??Solaris????????1??FAT12???????????27??隱藏的?NTFS?Win?82??Linux?交換?/?So?c1??DRDOS/sec?(FAT-2??XENIX?root??????39??Plan?9??????????83??Linux???????????c4??DRDOS/sec?(FAT-3??XENIX?usr???????3c??PartitionMagic??84??OS/2?隱藏的?C:??c6??DRDOS/sec?(FAT-4??FAT16<32M??????40??Venix?80286?????85??Linux?擴(kuò)展??????c7??Syrinx?????????5??擴(kuò)展????????????41??PPC?PReP?Boot???86??NTFS?卷集???????da??非文件系統(tǒng)數(shù)據(jù)?6??FAT16???????????42??SFS?????????????87??NTFS?卷集???????db??CP/M?/?CTOS?/?.7??HPFS/NTFS/exFAT?4d??QNX4.x??????????88??Linux?純文本????de??Dell?工具??????8??AIX?????????????4e??QNX4.x?第2部分??8e??Linux?LVM???????df??BootIt?????????9??AIX?可啟動(dòng)??????4f??QNX4.x?第3部分??93??Amoeba??????????e1??DOS?訪問???????a??OS/2?啟動(dòng)管理器?50??OnTrack?DM??????94??Amoeba?BBT??????e3??DOS?R/O????????b??W95?FAT32???????51??OnTrack?DM6?Aux?9f??BSD/OS??????????e4??SpeedStor??????c??W95?FAT32?(LBA)?52??CP/M????????????a0??IBM?Thinkpad?休?eb??BeOS?fs????????e??W95?FAT16?(LBA)?53??OnTrack?DM6?Aux?a5??FreeBSD?????????ee??GPT????????????f??W95?擴(kuò)展?(LBA)??54??OnTrackDM6??????a6??OpenBSD?????????ef??EFI?(FAT-12/16/ 10??OPUS????????????55??EZ-Drive????????a7??NeXTSTEP????????f0??Linux/PA-RISC?? 11??隱藏的?FAT12????56??Golden?Bow??????a8??Darwin?UFS??????f1??SpeedStor?????? 12??Compaq?診斷?????5c??Priam?Edisk?????a9??NetBSD??????????f4??SpeedStor?????? 14??隱藏的?FAT16?<3?61??SpeedStor???????ab??Darwin?啟動(dòng)?????f2??DOS?次要??????? 16??隱藏的?FAT16????63??GNU?HURD?or?Sys?af??HFS?/?HFS+??????fb??VMware?VMFS???? 17??隱藏的?HPFS/NTF?64??Novell?Netware??b7??BSDI?fs?????????fc??VMware?VMKCORE? 18??AST?智能睡眠????65??Novell?Netware??b8??BSDI?swap???????fd??Linux?raid?自動(dòng) 1b??隱藏的?W95?FAT3?70??DiskSecure?多啟?bb??Boot?Wizard?隱??fe??LANstep???????? 1c??隱藏的?W95?FAT3?75??PC/IX???????????be??Solaris?啟動(dòng)????ff??BBT???????????? 1e??隱藏的?W95?FAT1?80??舊?Minix???????命令(輸入?m?獲取幫助):t 分區(qū)號(hào)?(1-3,5,默認(rèn)?5):3 Hex?代碼(輸入?L?列出所有代碼):82?????????#修改System為82?即linux交換分區(qū) 已將分區(qū)“Linux”的類型更改為“Linux?swap?/?Solaris”命令(輸入?m?獲取幫助):p磁盤?/dev/sdb:21.5?GB,?21474836480?字節(jié),41943040?個(gè)扇區(qū) Units?=?扇區(qū)?of?1?*?512?=?512?bytes 扇區(qū)大小(邏輯/物理):512?字節(jié)?/?512?字節(jié) I/O?大小(最小/最佳):512?字節(jié)?/?512?字節(jié) 磁盤標(biāo)簽類型:dos 磁盤標(biāo)識(shí)符:0xf8f3e822設(shè)備?Boot??????Start?????????End??????Blocks???Id??System /dev/sdb1????????????2048????20973567????10485760???83??Linux /dev/sdb2????????20973568????31459327?????5242880????5??Extended /dev/sdb3????????31459328????41943039?????5241856???82??Linux?swap?/?Solaris /dev/sdb5????????20975616????29364223?????4194304???83??Linux命令(輸入?m?獲取幫助):w The?partition?table?has?been?altered!Calling?ioctl()?to?re-read?partition?table. 正在同步磁盤。 [root@localhost?~]#? [root@localhost?~]#?partprobe第二部: ?格式化:使用mkswap命令 (前提:調(diào)整其分區(qū)的ID為82;) ? ? ? ? ?mkswap:格式化分區(qū)為swap格式
語法:mkswap [options] device ? ? ? ? ? ? ? -L 'LABEL'
?第三步: ? ? 啟動(dòng):使用swapon命令
??[root@localhost?~]#?swapon?/dev/sdb3?第四步: ? ? 查看:使用free命令
????[root@localhost?~]#?freetotal????????used????????free??????shared??buff/cache???availableMem:????????1010336??????539824??????236556????????8116??????233956??????290804Swap:???????7339000???????????0?????7339000[root@localhost?~]#???[root@localhost?~]#?swapon?-s????????#列出目前使用的swap設(shè)備有哪些文件名 類型 大小 已用 權(quán)限/dev/dm-1?????????????????????????????? partition 2097148 0 -1/dev/sdb3?????????????????????????????? partition 5241852 0 -2[root@localhost?~]#大家在使用windows系統(tǒng)時(shí),可以通過一些磁盤管理軟件在不格式化分區(qū)的前提下更換卷標(biāo),那么在linux系統(tǒng)時(shí),更換卷標(biāo)就只能在格式化時(shí)設(shè)置嘛? 當(dāng)然不是可以通過e2label命令管理ext系列文件系統(tǒng)的卷標(biāo)。 ? 語法: ? ? ? ? ?e2label DEVICE [LABEL] 設(shè)置卷標(biāo) e2lable DEVICE ? ? ? ? 查看卷標(biāo)
???[root@localhost?~]#?e2label?/dev/sdb5?L6[root@localhost?~]#?e2label?/dev/sdb5?L6那么分區(qū)的其他屬性是否也可以在不重新格式化的前提下修改呢?答案是可行的,通過使用tune2fs命令。 ? ? ?tune2fs:重新設(shè)定ext系列文件系統(tǒng)可調(diào)整參數(shù)的值
-l:查看指定文件系統(tǒng)超級(jí)塊信息;super block
-L 'LABEL':修改卷標(biāo)
-m #:修預(yù)留給管理員的空間百分比
-j: 將ext2升級(jí)為ext3
-O: 文件系統(tǒng)屬性啟用或禁用
-o: 調(diào)整文件系統(tǒng)的默認(rèn)掛載選項(xiàng)
-U UUID: 修改UUID號(hào);
計(jì)算機(jī)用戶在使用計(jì)算機(jī)的過程當(dāng)中死機(jī)這種情況,我想已經(jīng)是見怪不怪了,而死機(jī)飛常可能導(dǎo)致文件系統(tǒng)的錯(cuò)亂。如果發(fā)生文件系統(tǒng)錯(cuò)亂的話該怎么辦呢?簡單那就是使用文件系統(tǒng)檢查命令:fsck。
?文件系統(tǒng)檢測: fsck: File System CheCk fsck.FS_TYPE?
?????????????????fsck -t FS_TYPE?
?????????????????????-a: 自動(dòng)修復(fù)錯(cuò)誤?
?????????????????????-r: 交互式修復(fù)錯(cuò)誤 ??
? ? ? ? ? ? ? ? ? ? ext系列文件系統(tǒng)的額外參數(shù): ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? -f:強(qiáng)制檢查?
? 范例: ? ? ?
[root@localhost?~]#?fsck?-t?ext3?-f?-C?/dev/sdb5 fsck,來自?util-linux?2.23.2 e2fsck?1.42.9?(28-Dec-2013) 第一步:?檢查inode,塊,和大小 第二步:?檢查目錄結(jié)構(gòu)??????????????????????????????????????????????????????????? 第3步:?檢查目錄連接性 Pass?4:?Checking?reference?counts 第5步:?檢查簇概要信息 L6:?11/524288?files?(0.0%?non-contiguous),?104300/2097152?blocks???????????????? [root@localhost?~]#?另外我們的系統(tǒng)實(shí)際執(zhí)行的fsck命令,其實(shí)是調(diào)用e2fsck這個(gè)ext系列文件專用的檢測修復(fù)工具的。 ? e2fsck語法: e2fsck:ext系列文件專用的檢測修復(fù)工具 ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? e2fsck [option..] device ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? 選項(xiàng): -y:自動(dòng)回答為yes; (同fsck的 -a選項(xiàng))?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-f:強(qiáng)制修復(fù);
轉(zhuǎn)載于:https://blog.51cto.com/3037673/1727878
總結(jié)
以上是生活随笔為你收集整理的Linux文件系统及磁盘分区与格式化(二次排版)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 杭州社保转移怎么办理流程(社保跨省转移有
- 下一篇: Linux移植随笔:终于解决Tslib的