Linux 系統的磁盤分區_【all】

磁盤的存儲邏輯結構

1.主引導扇區(446+64+2)
	MBR(主引導記錄)0磁頭0磁道的第一扇區  446字節    -->存放系統的引導程序,同Windows
	剩下的64字節,分區表(每一個分區16字節),故最多有4個主分區
		3個主分區+1個擴展分區(1個擴展分區能夠有多個邏輯分區)
			擴展分區不能直接使用,邏輯標號從5開始
		/dev/sda1 + /dev/sda2 + /dev/sda3 + 擴展分區內的邏輯分區/dev/sda5 
	剩下的2字節做爲磁盤的結束標誌55AA
2.分區16字節的內容說明
	0x80   表示分區激活
	0x83   表示Linux類型

3.如何備份MBR? 如何恢復MBR
	dd if=/dev/sda of=/dev/mbr.bin bs=512 count=1   -->備份MBR(0磁頭0磁道1扇區 前446字節)
	od -xf /dev/mbr.bin 							-->查看備分內容
	dd if=/dev/mbr.bin of=/dev/sda bs=512 count=1   -->恢復MBR     

4.磁盤分區總結
	1.爲何?分區跟咱們買房子隔離出來臥室和客廳同樣,能夠在不一樣的分區存放不一樣的數據,一個分區滿了亦不會對其餘的分區形成影響。                    
		固然直接格盤格式化硬盤也是能夠的
		實質? 修改分區表!!!
	2.分區的重點:
		1.分區的實質就是對446本身後面的64byte的分區進行設置。即主要劃分起始以及結束磁頭號,扇區號和柱面號
		2.分區工具備
			fdisk(小於2T)                 ----->首選
			parted(適合大於2T,也能夠分區小於2T)
				注意:fdisk和parted分區的結果 互不兼容
		3.一塊磁盤的分區表僅有64bytes大小,每一個分區要佔用16個字節,所以一個磁盤僅支持4個分區表信息
			即主分區+擴展分區總量不超過4個(磁盤自己限制),且一個硬盤只能有一個擴展分區(操做系統限制)
		4.磁盤分區是安裝柱面劃分的
		5.擴展分區不能直接使用,還要在擴展分區的基礎上劃分邏輯分區擦洗
		6.擴展分區有本身的分區表,所以擴展分區的邏輯分區能夠有多個
		*.磁盤使用前通常都須要進行分區。
			磁盤分區主要有主分區,擴展分區,邏輯分區
			給磁盤分區實際上就是劃分柱面號和扇區號
   	3.主分區
    	主分區是磁盤必須存在的分區,通常爲磁盤的第一分區,能夠安裝操做系統
    4.擴展分區
    	除了主分區外,剩餘的磁盤空間就是擴展分區了,擴展分區是一個概念,其實是看不到的
    	嚴格意義上,不算分區,只是一個鏈接,起到了指向的做用
    	是一個虛擬的小硬盤,可是沒有MBR,只有擴展分區列表,沒有64bytes限制
    	一個硬盤只能一個擴展分區,操做系統限制
    5.邏輯分區
    	在擴展分區上面,能夠建立多個邏輯分區。
    	邏輯分區至關於一塊存儲截止,和操做系統還有別的邏輯分區、主分區沒有什麼關係,是「獨立的」。
    	並不能直接單獨劃分邏輯分區,只能存在於擴展分區內。
    	邏輯分區的編號默認從5開始
    	實際應用:主分區和邏輯分區均可以用。安裝操做系統在主分區,數據在邏輯分區
    6.磁盤分區的注意事項
    	1.任意多個主分區,但要求  1《 主分區數量《4
    	2.擴展分區和主分區組合, 但要求  2《 主分區+擴展分區數量《 4
    	3.若是要分紅4個磁盤分區,最多能夠是
    		p+p+p+p剩下空間保留
    		p+p+p+e(1l)剩下空間保留
    		p+p+e(2l)剩下空間保留
    		p+e(3l)剩下空間保留
    			注意:由於操做系統的限制,擴展分區最多1個
    		若是對磁盤進行了4P或3P+E後,即便磁盤還有未分配的空間,那麼這部分空間也沒法使用了(分區表已滿)
    			能夠劃分多個邏輯分區進行佔用
        4.對於磁盤分區,實際上就是修改64位的分區表,分區與對應的數據沒有關係,所以理論上調整分區大小,不會刪除分區內的數據
        5.特殊說明:磁盤也能夠不分區,直接格式化使用,可是不推薦
    7.磁盤分區設備名
    	Linux系統中,經過設備名來訪問設備的,設備名存放在"/dev"目錄中
    		設備名稱的定義規則以下:
    		--系統的第一塊IDE接口的硬盤稱爲/dev/hda
    		--系統的第二塊IDE接口的硬盤稱爲/dev/hdb
    		--系統的第一塊SCSI接口的硬盤稱爲/dev/sda
    		--系統的第二塊SCSI接口的硬盤稱爲/dev/sdb
    			SATA,SAS都是sd開頭
    		每一個分區則使用磁盤名稱加對應的數字編號表示:
    		--系統的第一塊IDE接口的硬盤的第1個分區稱爲/dev/hda1
    		--系統的第二塊IDE接口的硬盤第5個分區稱爲/dev/hda5
    		--系統的第一塊SCSI接口的硬盤第1個分區稱爲/dev/sda1
    		--系統的第二塊SCSI接口的硬盤第5個分區稱爲/dev/sdb5
    	注意:1.Linux下沒有盤符的概念,對磁盤設備進行操做,須要使用磁盤設備名;
    		  	讀取磁盤設備內容,須要把建立在分區或邏輯捲上的文件系統掛載到指定的目錄上。
    		  2.Linux系統上劃分分區後,還要在分區上建立文件系統
    8.Linux系統對分區的要求:
    	1.最少要有/ 以及swap 2個分區
    	2.swap(交換分區):虛擬內存 大小=1.5*物理內存容量
    	3.設置獨立的/boot分區,大小100-200M
    	綜上:常見的服務器分區方式:/boot / swap
    9.文件系統(分區後建立文件系統)
    	0.建立文件系統其實是在建立了一堆inode和block
    	1.什麼是文件系統
    		概念:一個存儲設備上的數據和元數據進行組織的一種機制。
    			 基於存儲設備的
    			 是在一個磁盤(包括U盤)或分區上組織文件的方式和方法。
    		目的:易於查詢和存取數據   	
    			===>磁盤沒有文件系統也就沒法存數數據
    		常見的文件系統:
    			Linux:	  ext2,ext3,ext4,xfs(數據庫,門戶) reiserfs(先進的日誌機制)
    			Windows:  NTFS,FAT,fat32等

磁盤分區總結

1.文件系統是一個對存儲設備上的數據和元數據進行組織的一種機制
2.分區必須格式化(等價建立文件系統),建立文件系統才能存放數據
3.一個分區只能有一種文件系統html

文件系統選型簡單介紹

1.查看系統支持的類型:
    ls -l /lib/moduleslol/2.6.32-279.el6.x86_64/kernel/fs/
2.類型介紹
    a.xfs  有數據庫Mysql業務
    b.ext4 視頻下載,流媒體,數據庫,小文件(系統默認)
3.查看ext4的內部                    
    建立文件系統其實是在建立了一堆inode和block    
[oot@omc fs]# dumpe2fs /dev/sda1
    et4文件系統的組成
    超級塊  塊組1  塊組2  塊組3  塊組4(對inode進行分組)

企業生產場景磁盤分區方法

1.fdisk分區       --> 小於2T 
	1.交互式
		1.fdisk -cu /dev/sdb         -->更改柱面到扇區
			m 	n    p   w    d  q  t  l 
		2.將修改後的內容告訴內核,不然須要重啓
			partprobe /dev/sdb
		3.查看
			ll /dev/sd*
		 	==>fdick -l 
	2.非交互式劃分
		1.	 echo -e "n\np\n1\n\n+100M\nn\np\n2\n\n+100M\nw"|fdisk /dev/sdb
		2.將修改後的內容告訴內核,不然須要重啓
			partprobe /dev/sdb
		3.查看
			ll /dev/sd*
		 	==>fdick -l 

2.parted分區(pgt分區)     -->即時生效,建立了之後就直接產生,能夠非交互是的建立
		--> 大於2T,且使用gpt(全局惟一標示磁盤分區表格式)的分區表
		--> MBR 的最大可循地址爲2T
	1.  交互式:
		1.parted /dev/sdb mklabel gpt  -->更改分區表
			 -->help寫出幫助
			mkpart primary 0 10         -->0-10M 主分區
	    	rm 2                 	    -->刪除,
	    2.將修改後的內容告訴內核,不然須要重啓
			partprobe /dev/sdb
		3.查看
			ll /dev/sd*
		 	==>fdick -l 

	2.	非交互是的建立
		1.建立
			parted /dev/sdb mklabel gpt yes
	  		parted /dev/sdb mklabel primary ext4 0 100 ignore
	  		parted /dev/sdb mklabel logic ext4 0 100 ignore
	  	2.將修改後的內容告訴內核,不然須要重啓
				partprobe /dev/sdb
			3.查看
				ll /dev/sd*
			 	==>fdick -l

磁盤格式化

格式化==>建立文件系統==>產生inode和block==>能夠更改inode和block大小
1.格式化:
	mkfs.ext4 -I 4096 -b 4096 /dev/sdb2  
	mkfs -t ext4 -I 4096 -b 8192 /dev/sdb1
2.格式化後系統會自檢
	取消自檢
		tune2fs -c -1 /dev/sdb1
3.掛載磁盤設備==>文件系統入口
	 mount /dev/sdb1 /mnt
	 	複雜:mount -t ext4 -p loop,noatime,noexec /dev/sdb1 /mnt
4.查看掛載磁盤  
		df -h 
		   ==>cat /proc/mounts 
5.開機自動掛載,寫入到/etc/fstab
	/dev/sdb1  /mnt  ext4 defaults 0 0

 

磁盤分區命令總結

分區:  fdisk  parted   
        實質:   -->修改0磁頭0柱面1扇面的後面的64個字節分區表
格式化:mkfs.ext4 /dev/sdb1
		tune2fs -c -1 /dev/sdb1
	    實質:   -->建立文件系統(生成各類塊,inode,block)	

	磁盤檢查:不要輕易使用,通常針對卸載狀態的,有問題的磁盤
		fsck -C -f -t ext4 /dev/sda			

掛載:  mount /dev/sdb1 /mnt
		實質:   -->爲文件系統指定訪問入口
   開機自動掛載(編輯2個文件均可以自動掛載,推薦fstab):
   		/etc/fstab
   			/dev/sdb1  /mnt  ext4 defaults  0  0
   			容許的數字是0, 1, 和2。
   			 0: 不會被fsck utility檢查。,
   			 1: root文件系統應該擁有最高的優先權
   			 2: 全部其它的文件系統,若是你想讓它被check的話,應該寫成2
   		/etc/rc.local
   			/dev/sdb1  /mnt  ext4 defaults  0  0
   測試掛載: mount       -->直接輸入便可
              mount  -a   -->加載/etc/fstab
   檢查掛載狀況:df -h  /  df -hi  
   			  cat /proc/mounts

 

文件系統的簡單操做

1.磁盤與目錄容量:
	df -hi   文件系統的總體磁盤使用狀況
	du -sh   評估文件系統的磁盤使用
2.鏈接文件
	ln
3.磁盤參數更改(如下內容爲了解內容)
	1>mknod
		mknod /dev/sdb2 b 22 10 
		ls -l /dev/sdb2
	2>e2label   將/dev/sdb2卷標改成 mytest
		dump2fs -h /dev/sdb2
		e2label /dev/sdb2 "hello"
		dump2fs -h /dev/sdb2
	3>tune2fs 列出/dev/sdb2的superblock內容 
		tune2fs -l /dev/sdb1
4.設置開機掛載
	1>開機掛載/etc/fstab 和 /etc/mtab
		將/dev/sdb2每次開機都自動掛在到/tmp/sdb2
		編輯:  vi  /etc/fstab
		寫入:  /dev/sdb2 /tmp/sdb2 ext4 default 0 0 
	2>特殊設備loop掛載
		mount -o loog /root/centos 5.2_x86_64.iso /tmp
		df
	3>新建大文件以製做loop設備文件
		dd if=/dev/sdb2 of=/home/loopdev bs=2M  count=512
		mkfs.ext4 /home/loopdev
		mount -o loop /home/loopdev /media

5.交換內存空間(swap)的構建   -----Java內存溢出(瞭解)
	1>使用物理分區構建swap
		mkswap /dev/sdb2
		free
		swapon /dev/sdb2   -->增長交換分區
		free
	2>使用文件構建swap
		dd if=/dev/zero  of=/tmp/swap bs=2M count=128
		ls -lh /tmp/swap
		mkswap /tmp/swap
		free
		swapon /tmp/swap
		free
		swapon -s
		swapoff /tmp/swap
		swapoff /dev/sdb2
		free
6.生產場景磁盤命令使用案例            (瞭解,不重要)
	0> e2fsck        -->檢查ext2/ext3/ext4的磁盤信息
	1> fsck -n /dev/sdb2
	2> fdisk -s /dev/sdb2
	3> resize2fs /dev/sdb2     -->從新調整文件大小
相關文章
相關標籤/搜索