磁區相關理論知識
mbr是什么
關于mbr
mbr引導:主引導記錄
開機啟動程序
開機自檢(BIOS) (硬體檢查)
MBR引導
GRUB選單 (選擇不同的內核)
加載內核 (從硬碟到記憶體)
運行init行程 (Linux系統里面第一個行程)
讀取/etc/inittab組態檔(讀取運行級別)
執行/etc/rc.d/rc.sysinit腳本 (系統的初始化腳本 設定IP地址)
執行/etc/rc.d/rc腳本 (根據系統的運行級別 在開機的時候啟動不同的軟體)
啟動mingetty行程 (登錄界面)
mbr在哪里
磁盤的引導扇區 0磁頭 0磁道 1扇區 前446位元組
MBR引導 0頭0道1扇區 前446位元組
一個扇區的大小為512位元組
前446位元組 MBR 主引導記錄 引導系統啟動
中間64位元組 磁盤的磁區表 記錄著磁盤磁區從哪里開始到哪里結束
最后2位元組 磁區結束表示55AA
磁區表
在磁區表的64位元組里,劃分為4個格子 16*4
每個格子里存放的是磁區的資訊(主磁區 擴展磁區)
查看記憶體使用情況
free -h
Linux把你是使用過的命令或檔案 替你快取(buffer cache)起來,提高下次使用速度
[root@nfsnobody ~]# free -h
total used free shared buffers cached
Mem: 980M 721M 259M 224K 59M 529M
-buffer +buffer
-cache +cache
-/+ buffers/cache: 131M 848M 這個位置才是真正的剩余記憶體
Swap: 767M 196K 767M
磁盤磁區
三種磁區
主磁區
最多有4個主磁區
擴展磁區
沒有辦法直接使用 ,需要劃分成邏輯磁區才可以使用,
邏輯磁區
必須要在擴展磁區下面劃分邏輯磁區才可以使用,
主磁區 primary 每個磁區占用16個位元組的磁區表 一般一定要有 存放資料
擴展磁區 extend 無法直接使用 最多1個
邏輯磁區 logical 在擴展磁區下創建邏輯磁區 存放資料
磁盤磁區的命名規則
主磁區 1-4
擴展磁區 1-4 一般為4
邏輯磁區 從5開始
第1塊sas硬碟的第一個主磁區 /dev/sda
第2塊sata硬碟的第2個主磁區 /devsdb2
第3塊sata硬碟的第1個邏輯磁區 /dev/sdc5
磁盤名稱示例
第一塊硬碟 sda
第二塊硬碟 sdb
第三塊硬碟 sdc
第一塊硬碟的第一個主磁區:sda1
第一塊硬碟的第一個邏輯磁區:sda5
第二塊硬碟的第二個邏輯磁區:sdb6
在系統中磁盤磁區的命名
磁盤設備都放在/dev/目錄下
sas/sata/scsi/介面 sd 開頭
ide介面 hd開頭
磁區方式
沒有重要資料
/boot 引導磁區 200M 存放系統的引導資訊 內核
swap 交換磁區 防止記憶體用光了 臨時的一個記憶體
如果你的記憶體小于8G swap是記憶體的1.5倍 如果你的記憶體大于8G swap給8G
/ 根磁區 剩余多少給多少
很多重要資料
/boot 引導磁區 200M 存放系統的引導資訊 內核
swap 交換磁區 防止記憶體用光了 臨時的一個記憶體
如果你的記憶體小于8G swap是記憶體的1.5倍 如果你的記憶體大于8G swap給8G
/ 根磁區 20G-200G
/data 存放重要的資料 剩余多少給多少
不知道資料是否重要
/boot 引導磁區 200M 存放系統的引導資訊 內核
swap 交換磁區 防止記憶體用光了 臨時的一個記憶體
如果你的記憶體小于8G swap是記憶體的1.5倍 如果你的記憶體大于8G swap給8G
/ 根磁區 20G-200G
剩余空間不分 放著誰使用這臺服務器誰來磁區
磁盤磁區
linux里面的磁區工具
fdisk 主要是給磁盤小于2T(只能出來磁區表是mbr的)
parted 主要是給磁盤大于2T(gpt)
創建環境
在虛擬機添加兩塊硬碟 模擬實驗環境
/etc/fatab詳解
/etc/fatab 開機自動掛載
#
# /etc/fstab
# Created by anaconda on Tue Jul 10 18:21:44 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=c4f4be67-f408-4f14-b01e-a0c0777932cb / ext4 defaults 1 1
UUID=8dc40910-35ed-4d1b-acd7-5dad0ad47746 /boot ext4 defaults 1 2
UUID=09e2ce6c-7249-4239-8843-5ef9cc3a9a99 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
設備磁區名稱 第二列掛載點(目錄) 檔案系統型別 掛載引數 是否備份 是否開機磁盤檢查
fdisk磁區
剛才模擬環境添加了兩塊硬碟
[root@nfsnobody ~]# fdisk -l|grep sd[a-c]:
Disk /dev/sda: 21.5 GB, 21474836480 bytes
Disk /dev/sdb: 213 MB, 213909504 bytes 這兩塊就是剛才添加的 213MB
Disk /dev/sdc: 213 MB, 213909504 bytes
fdisk相關命令
fdisk命令及引數
fdisk -l
-u 磁盤磁區的時候以扇區為單位默認是按照柱面
-c 關閉dos兼容模式
fdisk內部命令
m 顯示幫助
n new 創建磁區
p 顯示所有磁區資訊
d 洗掉磁區
w 保存并退出
q 退出不保存
創建一個主磁區
如果要把硬碟全部空間都用上 在選擇大小那一列 直接回車 不輸入內容 默認是按最大空間
創建一個10MB主磁區
fdisk -cu關閉dos兼容模式 磁盤磁區的時候以扇區為單位默認是按照柱面
[root@nfsnobody ~]# fdisk -cu /dev/sdb 進入fdisk 編輯磁區
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x303d0abc.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): n 創建磁區
Command action 選擇磁區型別
e extended
p primary partition (1-4)
p
Partition number (1-4): 1 磁區號碼
First sector (2048-417791, default 2048):
從哪里開始 (直接回車 按默認)
Using default value 2048 默認選擇第一個扇區
Last sector, +sectors or +size{K,M,G} (2048-417791, default 417791): +10M
創建10M的磁區 選擇+10M
Command (m for help): p p顯示所有磁區資訊
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders, total 417792 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x303d0abc
Device Boot Start End Blocks Id System
/dev/sdb1 2048 22527 10240 83 Linux
創建擴展磁區及邏輯磁區
作業中 擴展磁區的磁區原則是:剩多少給多少
創建10MB的主磁區 創建一個使用所有容量的擴展磁區 創建兩個50MB邏輯磁區
[root@nfsnobody ~]# fdisk -cu /dev/sdb 進入fdisk 編輯磁區
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x303d0abc.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): p 從上一步繼續 創建兩個邏輯磁區 查看一下有的磁區
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders, total 417792 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x303d0abc
Device Boot Start End Blocks Id System
/dev/sdb1 2048 22527 10240 83 Linux
Command (m for help): n 創建新的磁區
Command action
e extended 擴展磁區
p primary partition (1-4)
e 創建擴展磁區磁區
Partition number (1-4): 2 選擇磁區號碼
First sector (22528-417791, default 22528):
Using default value 22528
Last sector, +sectors or +size{K,M,G} (22528-417791, default 417791):
Using default value 417791
Command (m for help): n 創建新的磁區
Command action
l logical (5 or over) 邏輯磁區,創建完擴展磁區后只能創建邏輯磁區
p primary partition (1-4)
l 選擇l 創建邏輯磁區 有擴展磁區后才能創建邏輯磁區
First sector (24576-417791, default 24576):
Using default value 24576
Last sector, +sectors or +size{K,M,G} (24576-417791, default 417791): +50M 選擇50M
Command (m for help): P 查看下所有的磁區資訊
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders, total 417792 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x303d0abc
創建成功 一個10M的主磁區 兩個邏輯磁區
如果要洗掉的話 d洗掉 洗掉擴展磁區 其下的所有邏輯磁區都會被洗掉
Device Boot Start End Blocks Id System
/dev/sdb1 2048 22527 10240 83 Linux
/dev/sdb2 22528 417791 197632 5 Extended
/dev/sdb5 24576 126975 51200 83 Linux
/dev/sdb6 129024 231423 51200 83 Linux
fdisk磁區及掛載
創建一個主磁區
進入fdisk
[root@nfsnobody ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x0a515057.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
警告 : 可以關閉dos的兼容模式,使用扇區作為磁區的默認單位 -cu ↓
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p 查看磁區資訊
Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0a515057
Device Boot Start End Blocks Id System
現在沒有創建磁區 所以為空
創建主磁區
Command (m for help): n 創建新磁區
Command action
e extended
p primary partition (1-4)
p 創建主磁區
Partition number (1-4): 1 磁區號碼設定為一
First cylinder (1-204, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-204, default 204):
Using default value 204
創建完保存退出
fdisk編輯完退出前記得保存
Command (m for help): w w保存退出 fdisk編輯完 退出前記得保存
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@nfsnobody ~]# fdisk -l 創建完成后 可以查看下
格式化檔案系統
mkfs ==make filesystem即創建檔案系統,
[root@nfsnobody ~]# partprobe /dev/sdb1 操作這一步 正常是不回任何提示的
[root@nfsnobody ~]# mkfs.ext4 /dev/sdb1
這一步會生成block和inode
使用mkfs.ext4 會報以下警告
This filesystem will be automatically checked every 25 mounts or
這個磁盤磁區會被自動檢查 每掛載25次或每隔180天 就會進行一次磁盤檢查
180 days, whichever comes first. Use tune2fs -c or -i to override.
關閉磁盤的自動檢查 使用tune2fs -c or -i可以關閉
-c 每掛載多少次進行一次磁盤檢查 -c 0 關閉
-i 每隔多少天進行一次磁盤檢查 -i 0 關閉
關閉磁區的自動檢查
-c 每掛載多少次進行一次磁盤檢查 -c 0 關閉
-i 每隔多少天進行一次磁盤檢查 -i 0 關閉
[root@nfsnobody ~]# tune2fs -c 0 -i 0 /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to -1
Setting interval between checks to 0 seconds
掛載磁區
掛載到/data 沒有/data記得事先創建好
[root@nfsnobody ~]# mkdir -p /data 創建掛載目錄
[root@nfsnobody ~]# mount /dev/sdb1 /data/ 掛載
[root@nfsnobody ~]# df -h 掛載后記得檢查
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.7G 16G 10% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 190M 35M 146M 19% /boot
/dev/sdb1 194M 1.8M 182M 1% /data 已掛載
永久掛載
/etc/rc.local 開機自啟動
追加到 /etc/fatab底部 /bin/mount /dev/sdb1 /data/
/etc/fatab 開機自動掛載
[root@nfsnobody ~]# vim /etc/fstab
/dev/sdb1 /data ext4 defaults 0 0
parted創建磁區
parted命令詳解
parted 的使用 parted 還可以非互動式創建磁區
parted使用需謹慎 parted是實時保存的
parted可以創建gpt和 mbr兩種格式的磁區表
gpt
msdos(mbr)
parted /dev/sdc
print 顯示磁區資訊
mktable 創建磁盤磁區表
gpt
msdos(mbr)
mkpart 創建磁區
rm 洗掉磁區
q 退出不保存
parted幫助資訊
parted內置命令 h 是查看幫助
[root@nfsnobody ~]# parted /dev/sdc
GNU Parted 2.1
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) h
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
創建磁區表
mkpart PART-TYPE [FS-TYPE] START END make a partition
創建一個磁區
mkpartfs PART-TYPE FS-TYPE START END make a partition with a file system
創建一個磁區 磁區帶著檔案系統
print [devices|free|list,all|NUMBER] display the partition table, available
devices, free space, all found partitions, or a particular partition
顯示磁區資訊
rm NUMBER delete partition NUMBER
洗掉一個磁區
mkpart 可以使用的PART-TYPE型別
GPT 格式可以創建N個主磁區,所以型別都選為主磁區即可,
(parted) help mkpart
mkpart PART-TYPE [FS-TYPE] START END make a partition
PART-TYPE is one of: primary, logical, extended
主磁區 ,邏輯磁區 ,擴展磁區
創建磁區
parted 創建磁區實時生效,比較危險,
[root@nfsnobody ~]# parted /dev/sdc 使用parted編輯磁區
GNU Parted 2.1
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p p查看磁區
Error: /dev/sdc: unrecognised disk label 未識別
(parted) mktable gpt 創建 gpt 磁盤磁區表
(parted) p p查看磁區
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 214MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
(parted) mkpart LH 0 10 創建 磁區 磁區名LH 從多少開始到多少結束
Warning: The resulting partition is not properly aligned for best performance.
提示磁區沒有對齊,這個錯誤無視即可,
Ignore/ Cancel? i 忽略資訊 i 忽略/取消
(parted) p p查看磁區
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 214MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 10.0MB 9983kB LH
(parted) mkpart LH 10 20 創建 磁區 磁區名LH 從多少開始到多少結束
(parted) p p查看磁區
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 214MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 10.0MB 9983kB LH
2 10.5MB 19.9MB 9437kB
洗掉磁區
(parted) rm 2 洗掉第二個磁區
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 214MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 10.0MB 9983kB LH
非互動式創建磁區
parted 后面直接跟上內置的命令 就可以直接使用 實作非互動式創建
parted /dev/sdc mktable gpt
parted /dev/sdc mkpart primary 0 10 ignore
parted /dev/sdc mkpart primary 10 20
parted /dev/sdc p
[root@nfsnobody ~]# parted /dev/sdc p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 214MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 10.0MB 9983kB LH
[root@nfsnobody ~]# parted /dev/sdc mkpart LH 50 100
Information: You may need to update /etc/fstab.
[root@nfsnobody ~]# parted /dev/sdc print 顯示磁盤的格式
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 50.0MB 50.0MB primary
2 50.3MB 99.6MB 49.3MB primary
增加swap
故障案例 java程式占用 大量記憶體 開始使用swap swap 不足
增加swap
查看swap資訊 free -h
[root@nfsnobody ~]# free -h
total used free shared buffers cached
Mem: 980M 275M 704M 236K 28M 132M
-/+ buffers/cache: 114M 866M
Swap: 767M 0B 767M swap資訊
創建一個檔案 成為swap
dd創建
/dev/zero 不斷輸出 零
/dev/null 黑洞
if input file 從哪里獲取資料 (輸入檔案)
of output file 輸出到哪里
bs block size 每次復制多少檔案
count 復制多少次
創建一個100M的檔案
[root@nfsnobody ~]# dd if=/dev/zero of=/tmp/100m bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.441882 s, 237 MB/s
[root@nfsnobody ~]# ll -h /tmp/100m 檢查
-rw-r--r-- 1 root root 100M Aug 15 11:58 /tmp/100m 創建成功
[root@nfsnobody ~]# file /tmp/100m
/tmp/100m: data 現在的型別為data 資料塊,
讓這個檔案成為swap
創建swap 讓這個檔案成為swap(格式化)
mkswap
[root@nfsnobody ~]# mkswap /tmp/100m
mkswap: /tmp/100m: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 102396 KiB
no label, UUID=9ee16d10-5fab-495d-a5fd-697b74ca360e
[root@nfsnobody ~]# file /tmp/100m file命令顯示這個檔案的型別
/tmp/100m: Linux/i386 swap file (new style) 1 (4K pages) size 25599 pages
mkswap命令將檔案型別格式化成swap格式
激活swap磁區
swapon -s 顯示swap的組成情況
[root@nfsnobody ~]# swapon /tmp/100m 掛載(激活)
[root@nfsnobody ~]# swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 786428 0 -1
/tmp/100m file 102396 0 -2
永久增加
/etc/rc.local
/sbin/swapon /tmp/100m
讓添加的swap永久生效
把命令放入/etc/rc.local 開機自啟動檔案中,
將swapon /tmp/100m此命令追加到 /etc/rc.local
寫入/etc/fstab 檔案中
格式為:
/tmp/100m swap swap defaults 0 0
顯示系統中的uuid
使用blkid 命令可以查看系統磁盤的uuid
[root@nfsnobody ~]# blkid
/dev/sda3: UUID="49bad9e9-cf33-4a15-ba84-4fd28e70bd29" TYPE="ext4"
/dev/sda1: UUID="7426d0f3-56d6-4fa6-a1c3-f2c8632bfbb8" TYPE="ext4"
/dev/sda2: UUID="46bc0a52-b13f-4845-8baa-90207849d5c5" TYPE="swap"
/dev/sdb1: UUID="7101630b-b325-49d1-92b9-0a500c2a07f6" TYPE="ext4"
未格式化出現的錯誤
對磁盤進行一些操作的時候可能會提示沒有格式化磁盤,需要格式化,
[root@nfsnobody ~]# tune2fs -c0 -i0 /dev/sdc
tune2fs 1.41.12 (17-May-2010)
tune2fs: Bad magic number in super-block while trying to open /dev/sdc
Couldn't find valid filesystem superblock.
沒有找到可用的檔案系統
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/149751.html
標籤:Linux
上一篇:磁盤管理-上部
下一篇:磁盤管理-下部
