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 -->從新調整文件大小