Linux文件系统及磁盘分区与格式化(二次排版)
Linux 的文件系統
磁盤物理組成
? ? ? ? ? ? ?
?磁盤的組成與分區: ?由圖中可以看到磁盤中存儲數據的部件為圓形的盤片(磁盤主要記錄數據的部分)。
盤片的結構
? ? ?而磁盤的物理組成如圖所示,主要由扇區組成,扇區(sector)為最小的物理存儲單元,每個扇區為512bytes;將扇區組成一個圓,那就是柱面(Cylinder),柱面是分區(partition)的最小單位; 磁盤的第一個扇區很重要,里面有硬盤主引導記錄(MBR)以及分區表(partition table ),其中MBR占有446bytes,而分區表占有64bytes。
磁盤在linux系統中的存在方式
? ? ? ? ? 市面上的各種接口的磁盤在LINUX系統當中是以文件形式存在的(Linux 一切皆文件)。 ?SCSI、SATA、USB、Flash等接口的磁盤在LINUX系統當中的文件名:/dev/sd[a-p][1-15] ?IDE接口的磁盤在LINUX系統當中的文件名:/dev/hd[a-d][1-63] ?上面中括號中的字母表示磁盤的序號,如sda ,sdb 等。而數字表示某一磁盤的某一分區,如/dev/sda2表示磁盤sba的2號分區; ? ? ? ? ?
?
磁盤的概念
?上文中一直提到一個叫做“磁盤分區”的概念,那么什么是磁盤分區呢,所謂磁盤分區即指定分區的起始與結束柱面,說白了就類似于古代的×××圈地,我看中了某一片地,于是告訴地主(操作系統)從哪到哪這片地我要了(即指定分區的起始與結束柱面)。 ?那么指定分區的柱面范圍記錄在哪里呢?就是第一個山區的分區表中。但是因為分區表僅有64bytes ,所以最多只能記錄4條分區記錄,這四條記錄我們稱為主分區(primary)或拓展分區(extended),其中拓展分區是不能存儲數據的,只有從其中分出邏輯分區(logical),才能存儲數據。 由于操作系統的限制,拓展分區只能有一個,而在linux系統中,IDE硬盤最多有59個邏輯分區(5號到63號),SATA硬盤則有11個邏輯分區(5號到15號)。 ?
磁盤分區
? ? ? ? 上面講道理一些磁盤組成與分區的基本知識,那么如果我現在有一塊硬盤,在linux系統下要怎樣對它分區呢? ?在linux系統下對硬盤分區有二類方式,圖形界面下分區與命令行下分區,在這里我們講解在命令行下對硬盤進行分區。 ?linux系統有三大分區管理工具:fdisk, parted, sfdisk ?fdisk是我們最常用的分區管理工具,fdisk對于一塊硬盤來講,最多只能管理15分區;在命令行下我們可以使用fdisk 命令帶 -l 選項來查看機器所掛硬盤個數及分區情況。?
[root@localhost?~]#?fdisk?-l磁盤?/dev/sdb:21.5?GB,?21474836480?字節,41943040?個扇區 Units?=?扇區?of?1?*?512?=?512?bytes 扇區大小(邏輯/物理):512?字節?/?512?字節 I/O?大小(最小/最佳):512?字節?/?512?字節磁盤?/dev/sda:21.5?GB,?21474836480?字節,41943040?個扇區 Units?=?扇區?of?1?*?512?=?512?bytes 扇區大小(邏輯/物理):512?字節?/?512?字節 I/O?大小(最小/最佳):512?字節?/?512?字節 磁盤標簽類型:dos 磁盤標識符:0x00064131設備?Boot??????Start?????????End??????Blocks???Id??System /dev/sda1???*????????2048?????1026047??????512000???83??Linux /dev/sda2?????????1026048????41943039????20458496???8e??Linux?LVM? ? ? ?從中我們可以看出當前機器有倆快硬盤,一塊已經分區(sda),一塊還沒有(sdb)。 ?fdisk命令的使用格式如下: ? ? ??
?????? ? ? ? ?fdisk device ? ? ?
????????????????????子命令:管理功能
p: print, 顯示已有分區;
n: new, 創建
d: delete, 刪除
w: write, 寫入磁盤并退出
q: quit, 放棄更新并退出
m: 獲取幫助
l: 列表所分區id
t: 調整分區id
? ? ?
? ? 在此我們要對磁盤sdb進行分區,首先 鍵入fdisk /dev/sdb 命令 開始對sdb進行分區
???[root@localhost?~]#?fdisk?/dev/sdb歡迎使用?fdisk?(util-linux?2.23.2)。更改將停留在內存中,直到您決定將更改寫入磁盤。使用寫入命令前請三思。Device?does?not?contain?a?recognized?partition?table使用磁盤標識符?0x1550511f?創建新的?DOS?磁盤標簽。命令(輸入?m?獲取幫助):? ? ?然后輸入n 新建一個分區 ? ?
??????命令(輸入?m?獲取幫助):nPartition?type:p???primary?(0?primary,?0?extended,?4?free)e???extendedSelect?(default?p):? ? ? ? ? 這里會出現一個提示讓你選擇創建的分區類型,主分區還是拓展分區,默認為主分區。 ? ?這里我們輸入p 建立一個主分區。 ? ?
????????Select?(default?p):?p分區號?(1-4,默認?1):? ? ?這里會讓你輸入分區號,默認為1,分區號從5開始是留給邏輯分區的。 ? 這里我們直接回車默認分區號為1。
????????分區號?(1-4,默認?1):起始?扇區?(2048-41943039,默認為?2048):?接下來會讓你輸入分區的起始扇區,我們直接回車默認為2048.
????????起始?扇區?(2048-41943039,默認為?2048):將使用默認值?2048Last?扇區,?+扇區?or?+size{K,M,G}?(2048-41943039,默認為?41943039):? ? ? 在這一步會讓你輸入分區的大小,有倆種輸入方式,輸入結束扇區數或直接輸入分區大小(后跟單位K,M,G前跟+號)。 ?這里我們給第一個分區10G空間。
????Last?扇區,?+扇區?or?+size{K,M,G}?(2048-41943039,默認為?41943039):+10G分區?1?已設置為?Linux?類型,大小設為?10?GiB命令(輸入?m?獲取幫助):?自此一個分區劃分完畢,我們輸入p 顯示已有分區。
????????磁盤?/dev/sdb:21.5?GB,?21474836480?字節,41943040?個扇區Units?=?扇區?of?1?*?512?=?512?bytes扇區大小(邏輯/物理):512?字節?/?512?字節I/O?大小(最小/最佳):512?字節?/?512?字節磁盤標簽類型:dos磁盤標識符:0x97df264f設備?Boot??????Start?????????End??????Blocks???Id??System/dev/sdb1????????????2048????20973567????10485760???83??Linux?在你劃分好分區以后一定要注意,要輸入w 保存分區信息并退出,否則你就白干了,如果你沒有保存分區信息直接輸入q退出,那么你再輸入fdisl -l 查看機器所掛硬盤個數及分區情況時
[root@localhost?~]#?fdisk?-l磁盤?/dev/sdb:21.5?GB,?21474836480?字節,41943040?個扇區Units?=?扇區?of?1?*?512?=?512?bytes扇區大小(邏輯/物理):512?字節?/?512?字節I/O?大小(最小/最佳):512?字節?/?512?字節磁盤?/dev/sda:21.5?GB,?21474836480?字節,41943040?個扇區Units?=?扇區?of?1?*?512?=?512?bytes扇區大小(邏輯/物理):512?字節?/?512?字節I/O?大小(最小/最佳):512?字節?/?512?字節磁盤標簽類型:dos磁盤標識符:0x00064131設備?Boot??????Start?????????End??????Blocks???Id??System/dev/sda1???*????????2048?????1026047??????512000???83??Linux/dev/sda2?????????1026048????41943039????20458496???8e??Linux?LVM?你的勞動沒有效果,一切都付之東流了。 ?一定一定要記得輸入w 保存退出,如下
????????命令(輸入?m?獲取幫助):wThe?partition?table?has?been?altered!Calling?ioctl()?to?re-read?partition?table.正在同步磁盤。? ?其他分區劃分方式類似,如下劃分倆個邏輯分區。
????命令(輸入?m?獲取幫助):nPartition?type:p???primary?(1?primary,?0?extended,?3?free)e???extendedSelect?(default?p):?e分區號?(2-4,默認?2):2起始?扇區?(20973568-41943039,默認為?20973568):將使用默認值?20973568Last?扇區,?+扇區?or?+size{K,M,G}?(20973568-41943039,默認為?41943039):+5G分區?2?已設置為?Extended?類型,大小設為?5?GiB命令(輸入?m?獲取幫助):nPartition?type:p???primary?(1?primary,?1?extended,?2?free)l???logical?(numbered?from?5)Select?(default?p):?l添加邏輯分區?5起始?扇區?(20975616-31459327,默認為?20975616):將使用默認值?20975616Last?扇區,?+扇區?or?+size{K,M,G}?(20975616-31459327,默認為?31459327):+5G值超出范圍。Last?扇區,?+扇區?or?+size{K,M,G}?(20975616-31459327,默認為?31459327):+4G分區?5?已設置為?Linux?類型,大小設為?4?GiB命令(輸入?m?獲取幫助):p磁盤?/dev/sdb:21.5?GB,?21474836480?字節,41943040?個扇區Units?=?扇區?of?1?*?512?=?512?bytes扇區大小(邏輯/物理):512?字節?/?512?字節I/O?大小(最小/最佳):512?字節?/?512?字節磁盤標簽類型:dos磁盤標識符:0x97df264f設備?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?獲取幫助):?大家不知有沒有注意到在你的分區信息中有一個id 項,這是個什么東東? 查看分區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?擴展??????c7??Syrinx?????????5??擴展????????????41??PPC?PReP?Boot???86??NTFS?卷集???????da??非文件系統數據?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?可啟動??????4f??QNX4.x?第3部分??93??Amoeba??????????e1??DOS?訪問???????a??OS/2?啟動管理器?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?擴展?(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?啟動?????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?自動 1b??隱藏的?W95?FAT3?70??DiskSecure?多啟?bb??Boot?Wizard?隱??fe??LANstep???????? 1c??隱藏的?W95?FAT3?75??PC/IX???????????be??Solaris?啟動????ff??BBT???????????? 1e??隱藏的?W95?FAT1?80??舊?Minix???????命令(輸入?m?獲取幫助):分區已經創建完成,此時這個分區就真的已經存在了嘛?難道不是嘛,我已經看到它的分區信息了呀。 NO,NO ,NO 因為使用fdisk 快速分區,需要重啟電腦,否則內核無法識別到新的分區。 這時我們可以采取另一種方法,使用partx命令通知內核重新讀取硬盤分區表: ? ?語法 ? ?partx [-a|-d|-l] [--type TYPE] [--nr M-N] [partition] disk ? ? ? 選項
-a ? ? ? ? 增加制定的分區或讀磁盤新增的分區
-d ? ? ? ? 刪除制定或所有的分區
-l ? ? ? ? 列出分區
--type ? ? 指定分區類型。dos,bsd,solaris,unix,或者gpt
--nr M-N ? 指定分區范圍
現在我們可以向分區存儲內容了吧。
? 顯然不能,會報錯的,為什么呢?因為我們還沒對分區進行格式化(format)。 為什么需要進行格式化呢?這是因為每種操作系統所設置的文件屬性/權限并不相同,為了存放這些文件所需的數據,因此就需要將分區進行格式化,以成為操作系統能夠利用的文件系統格式。 ? 既然提到了文件系統那么都有那些文件系統呢? ? ?
?Linux文件系統:
ext2, ext3, ext4, xfs, btrfs, reiserfs, jfs, swap
swap: 交換分區
光盤:iso9660
Windows:
fat32, ntfs
Unix:
FFS, UFS, JFS2
? ? ? ? ? ? ? ? 網絡文件系統:NFS, CIFS
分布式文件系統:ceph, moosefs, mogilefs, GlusterFS, Lustre
集群文件系統:GFS2, OCFS2
根據其是否支持"journal"功能:
日志型文件系統: ext3, ext4, xfs, ...
非日志型文件系統: ext2, vfat
? ? ?
inode,block,super block
那么文件系統是如何運行的呢?這與操作系統的文件數據有關。較新的操作系統的文件數據除了文件實際內容外,通常含有非常多的屬性,例如linux操作系統的文件權限,與文件屬性。文件系統通常會將這兩部分的數據分別存放在不同的塊,權限與屬性放置到inode中,至于實際的數據則放置到data block 塊中。另外還有一個超級塊(superblock)會記錄記錄整個文件系統的整體信息,包括inode與block的總量、使用量、剩余量等。 ? 每個inode與block都有編號,至于這三個數據的意義可以簡略說明如下: ? superblock :記錄文件系統的整體信息,包括文件系統inode/block 的總量、使用量、剩余量以及文件系統的格式與相關信息等; ? ? ? 可以通過dumpe2fs查看超級塊信息 ? ? ? ? ? ? ? ? dumpe2fs:-h 設備文件名 ? ? ? 如: ? ?
[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
如此多的文件系統,那么linux的內核又是如何管理這些認識的文件系統呢?其實整個linux系統都是通過VFS(虛擬文件系統)的內核功能區讀取文件系統的。也就是說,整個linux認識的文件系統其實都是VFS在進行管理,我們用戶并不需要知道每個分區上頭的文件系統是什么,VFS會主動幫我們做好讀取的操作。
? ?
磁盤格式化
在羅嗦了一些關于文件系統的知識以后,現在我們進入文件系統的格式化。格式化的方法非常簡單,那就是使用linux文件系統的用戶空間的管理工具:mkfs命令。
? mkfs命令的兩種用法: ? (1) # mkfs.FS_TYPE /dev/DEVICE
? ? ? ? ? ? ? ? ext4 xfs btrfs vfat
? ? (2) # mkfs -t FS_TYPE /dev/DEVICE
? ? ? ? ? ? ? ? -L 'LABEL': 設定卷標
范例:
[root@localhost?~]#?mkfs.ext4?/dev/sdb1 mke2fs?1.42.9?(28-Dec-2013) 文件系統標簽=??????????????????????????????????#分區的名稱既卷標 OS?type:?Linux 塊大小=4096?(log=2)????????????????????????????#block大小 分塊大小=4096?(log=2) Stride=0?blocks,?Stripe?width=0?blocks 655360?inodes,?2621440?blocks??????????????????#由此設置決定的inode/block數量 131072?blocks?(5.00%)?reserved?for?the?super?user 第一個數據塊=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) 文件系統標簽= 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 第一個數據塊=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文件系統的例子中,可以發現結果里有非常多的信息,由于我們沒有指定文件系統的這些具體信息的具體內容,因此系統會使用默認值來進行格式化。其中比較重要的部分為:卷標(label)、block塊的大小以及inodede數量。如果要在格式化時同時設置這些值,就要使用ext系列文件系統專用管理工具:mke2fs ? ?mke2fs:ext系列文件系統專用管理工具
-t {ext2|ext3|ext4}
-b {1024|2048|4096} 設置block大小
-L 'LABEL' ? ? ? ? ?設置卷標
-j: 相當于 -t ext3 (當沒有指定-j選項時,mke2fs使用ext2 為格式化文 ? ? ? ? ? ? ? ? ? ? ? ? 件格式 ,如加入-j 時,則格式化為ext3這個Journaling(日志記錄)的文件 ? ? ? ? ? ? ? ? ? ? ? ? 系統) mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
-i #: 為數據空間中每多少個字節創建一個inode;此大小不應該小于block ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?的大小;
-N #:為數據空間創建個多少個inode;
-m #: 為管理人員預留的空間占據的百分比;
? ? ? ? ? ? ? ? -O FEATURE[,...]:啟用指定特性 -O ^FEATURE:關閉指定特性
范例:格式化sdb為ext3文件系統,卷標為L5,block為2048,每8192bytes分配一個inode ;
??[root@localhost?~]#?mke2fs?-i?8192?-L?L5?-b?2048?-j?/dev/sdb5? mke2fs?1.42.9?(28-Dec-2013) 文件系統標簽=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 第一個數據塊=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?~]#大家在學習安裝linux系統時有時會在圖形界面下創建一個swap(內存交換空間),那么在命令行下要如何用命令創建一個swap分區呢?四步即可搞定。 第一步: ? ? 分區:
[root@localhost?~]#?fdisk?/dev/sdb 歡迎使用?fdisk?(util-linux?2.23.2)。更改將停留在內存中,直到您決定將更改寫入磁盤。 使用寫入命令前請三思。命令(輸入?m?獲取幫助):n Partition?type:p???primary?(1?primary,?1?extended,?2?free)l???logical?(numbered?from?5) Select?(default?p):? Using?default?response?p 分區號?(3,4,默認?3): 起始?扇區?(31459328-41943039,默認為?31459328): 將使用默認值?31459328 Last?扇區,?+扇區?or?+size{K,M,G}?(31459328-41943039,默認為?41943039): 將使用默認值?41943039 分區?3?已設置為?Linux?類型,大小設為?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?擴展??????c7??Syrinx?????????5??擴展????????????41??PPC?PReP?Boot???86??NTFS?卷集???????da??非文件系統數據?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?可啟動??????4f??QNX4.x?第3部分??93??Amoeba??????????e1??DOS?訪問???????a??OS/2?啟動管理器?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?擴展?(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?啟動?????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?自動 1b??隱藏的?W95?FAT3?70??DiskSecure?多啟?bb??Boot?Wizard?隱??fe??LANstep???????? 1c??隱藏的?W95?FAT3?75??PC/IX???????????be??Solaris?啟動????ff??BBT???????????? 1e??隱藏的?W95?FAT1?80??舊?Minix???????命令(輸入?m?獲取幫助):t 分區號?(1-3,5,默認?5):3 Hex?代碼(輸入?L?列出所有代碼):82?????????#修改System為82?即linux交換分區 已將分區“Linux”的類型更改為“Linux?swap?/?Solaris”命令(輸入?m?獲取幫助):p磁盤?/dev/sdb:21.5?GB,?21474836480?字節,41943040?個扇區 Units?=?扇區?of?1?*?512?=?512?bytes 扇區大小(邏輯/物理):512?字節?/?512?字節 I/O?大小(最小/最佳):512?字節?/?512?字節 磁盤標簽類型:dos 磁盤標識符:0xf8f3e822設備?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命令 (前提:調整其分區的ID為82;) ? ? ? ? ?mkswap:格式化分區為swap格式
語法:mkswap [options] device ? ? ? ? ? ? ? -L 'LABEL'
?第三步: ? ? 啟動:使用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設備有哪些文件名 類型 大小 已用 權限/dev/dm-1?????????????????????????????? partition 2097148 0 -1/dev/sdb3?????????????????????????????? partition 5241852 0 -2[root@localhost?~]#大家在使用windows系統時,可以通過一些磁盤管理軟件在不格式化分區的前提下更換卷標,那么在linux系統時,更換卷標就只能在格式化時設置嘛? 當然不是可以通過e2label命令管理ext系列文件系統的卷標。 ? 語法: ? ? ? ? ?e2label DEVICE [LABEL] 設置卷標 e2lable DEVICE ? ? ? ? 查看卷標
???[root@localhost?~]#?e2label?/dev/sdb5?L6[root@localhost?~]#?e2label?/dev/sdb5?L6那么分區的其他屬性是否也可以在不重新格式化的前提下修改呢?答案是可行的,通過使用tune2fs命令。 ? ? ?tune2fs:重新設定ext系列文件系統可調整參數的值
-l:查看指定文件系統超級塊信息;super block
-L 'LABEL':修改卷標
-m #:修預留給管理員的空間百分比
-j: 將ext2升級為ext3
-O: 文件系統屬性啟用或禁用
-o: 調整文件系統的默認掛載選項
-U UUID: 修改UUID號;
計算機用戶在使用計算機的過程當中死機這種情況,我想已經是見怪不怪了,而死機飛常可能導致文件系統的錯亂。如果發生文件系統錯亂的話該怎么辦呢?簡單那就是使用文件系統檢查命令:fsck。
?文件系統檢測: fsck: File System CheCk fsck.FS_TYPE?
?????????????????fsck -t FS_TYPE?
?????????????????????-a: 自動修復錯誤?
?????????????????????-r: 交互式修復錯誤 ??
? ? ? ? ? ? ? ? ? ? ext系列文件系統的額外參數: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? -f:強制檢查?
? 范例: ? ? ?
[root@localhost?~]#?fsck?-t?ext3?-f?-C?/dev/sdb5 fsck,來自?util-linux?2.23.2 e2fsck?1.42.9?(28-Dec-2013) 第一步:?檢查inode,塊,和大小 第二步:?檢查目錄結構??????????????????????????????????????????????????????????? 第3步:?檢查目錄連接性 Pass?4:?Checking?reference?counts 第5步:?檢查簇概要信息 L6:?11/524288?files?(0.0%?non-contiguous),?104300/2097152?blocks???????????????? [root@localhost?~]#?另外我們的系統實際執行的fsck命令,其實是調用e2fsck這個ext系列文件專用的檢測修復工具的。 ? e2fsck語法: e2fsck:ext系列文件專用的檢測修復工具 ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? e2fsck [option..] device ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? 選項: -y:自動回答為yes; (同fsck的 -a選項)?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-f:強制修復;
轉載于:https://blog.51cto.com/3037673/1727878
總結
以上是生活随笔為你收集整理的Linux文件系统及磁盘分区与格式化(二次排版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 杭州社保转移怎么办理流程(社保跨省转移有
- 下一篇: 赞美帅哥的句子(抖音评论帅哥的句子)