1,磁盤分區
磁盤在linux中的命名
IDE: /dev/hda hdb
scsi: /dev/sda /dev/sdb
分區數字 sda1 sda2 sda3
磁盤分區就相當於給磁盤打隔斷
磁盤分區類型:1,主分區(primary): P 1,系統中必須要存在的分區,系統盤選擇主分區安裝。
2,數字編號只能是1-4,sda1 sda2. sda3 sda4
3, 主分區最多四個,最少一個
2, 擴展分區(extend)E: 1,相當於一個獨立的小磁盤,獨立的分區表,不能獨立存在。
2,有獨立的分區表
3,不能獨立存在,即不能直接存放數據
4,必須在擴展分區上建立邏輯分區才能存放數據。
5,占用主分區的編號(主分區+擴展分區)總數小於等於4
6,擴展分區可以沒有,最多只有一個
3, 邏輯分區 (logic)
1,數字編號只能從5開始
2,存放於擴展分區之上。
3,存放任意普通數據。
問題: 給一個磁盤分6個分區有哪些方案:
3P 1E (3L)1 2 3 5 6 7
2P 1E (4L) 1 2 5 6 7 8
1P 1E (5L) 1 5 6 7 8 9
分區分完了,空間還有剩余浪費掉空間。
4,磁盤分區工作原理:
磁盤是按柱面分區的。
磁盤分區登記的地點:磁盤分區表。
磁盤分區表存放分區結果信息的。
位置,0磁道0磁頭1扇區。占用1扇區的前446字節(系統引導信息的)后面的64字節(分區表)
剩下的2字節分區結束標記
磁盤分區表的容量是有限的,64字節,一個分區固定16字節
64/16=4分區(主分區+擴展分區)
5,磁盤分區實戰
磁盤分區關鍵就是修改64字節的分區表而已
磁盤分區常用命令fdisk,修改MBR分區表,MBR格式。缺陷,被修改的磁盤大小不能大於2T
磁盤分區其他命令parted,gpt,既能修改小於2T也能修改大於2T。
小於2T用fdisk,(分區后記得w保存)
大於2T用parted
⚠️注意: 處於掛載活着使用的盤,不能分區,會導致數據丟失的
dd 轉換copy一個文件
dd if=/dev/sda of=/dev/sdc bs=512 ount=1024
來源 生成文件系統 block大小 塊的個數
cat /proc/partitions 查看分區信息
partprobe /dev/vdb 降分區信息通知內核
parted使用方法:
parted實現分區管理實踐
磁盤信息
- 待管理磁盤
/dev/sdb - 磁盤總大小
18T - 分區需求
將整個/dev/sdb划分到同一個分區里,並掛載到**/gfsdata01目錄下。
交互式方式實現分區步驟
選擇操作磁盤
parted命令后跟上欲操作磁盤的名字即可選擇此設備進行操作。
[root@kvm ~]# parted /dev/sdb GNU Parted 3.1 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands.
新建磁盤標簽類型為GPT
因為parted命令只能針對gpt格式的磁盤進行操作,所以這里必須將新建的磁盤標簽格式設為gpt。
(parted) mklabel gpt
分區
命令格式
mkpart PART-TYPE [FS-TYPE] START END
- PART-TYPE(分區類型)
- primary
主分區 - logical
邏輯分區 - extended
擴展分區
- primary
- FS-TYPE(文件系統類型)
- ext4
- ext3
- ext2
- xfs
- 其他......
- START
設定磁盤分區起始點;可以為0,numberMiB/GiB/TiB;- 0
設定當前分區的起始點為磁盤的第一個扇區; - 1G
設定當前分區的起始點為磁盤的1G處開始;
- 0
- END
設定磁盤分區結束點;- -1
設定當前分區的結束點為磁盤的最后一個扇區; - 10G
設定當前分區的結束點為磁盤的10G處;
- -1
將/dev/sdb整個空間分給同一個分區
(parted) mkpart primary 0 -1 Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? I (parted) p Model: AVAGO AVAGO (scsi) Disk /dev/sdb: 18.0TB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 17.4kB 18.0TB 18.0TB primary (parted) q Information: You may need to update /etc/fstab.
格式化分區
因為整個/dev/sdb只分了一個區,則這個分區名默認會分配為/dev/sdb1;使用mkfs命令將/dev/sdb1分區格式化為ext4。
[root@kvm ~]# mkfs -t ext4 /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) /dev/sdb1 alignment is offset by 244736 bytes. This may result in very poor performance, (re)-partitioning suggested. Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=64 blocks, Stripe width=64 blocks 274659328 inodes, 4394530311 blocks 219726515 blocks (5.00%) reserved for the super user First data block=0 134111 block groups 32768 blocks per group, 32768 fragments per group 2048 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848, 512000000, 550731776, 644972544, 1934917632, 2560000000, 3855122432 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
設定分區label(非必要)
[root@kvm ~]# e2label /dev/sdb1 /gfsdata01
創建掛載目錄
[root@kvm ~]# mkdir /gfsdata01
臨時掛載分區
[root@kvm ~]# mount /dev/sdb1 /gfsdata01 [root@kvm ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/root_vg-lv_root 89G 2.6G 82G 4% / devtmpfs 126G 0 126G 0% /dev tmpfs 126G 0 126G 0% /dev/shm tmpfs 126G 2.0M 126G 1% /run tmpfs 126G 0 126G 0% /sys/fs/cgroup /dev/sda1 976M 216M 694M 24% /boot /dev/sda7 99G 61M 94G 1% /home /dev/sda8 62G 53M 59G 1% /tmp /dev/sda6 99G 61M 94G 1% /app tmpfs 26G 0 26G 0% /run/user/1014 tmpfs 26G 0 26G 0% /run/user/0 /dev/sdb1 17T 20K 16T 1% /gfsdata01
開機自動掛載(永久掛載)
即修改/etc/fstab文件。
echo '/dev/sdb1 /gfsdata01 ext4 defaults 0 0' >>/etc/fstab
非交互式方式實現腳本
適用於需要在多台主機上進行同樣的分區操作,可以通過ansible工具調用腳本實現批量分區配置掛載等操作。
[root@kvm ~]# cat ./auto_partition.sh #!/bin/bash # 新建/dev/sdb的磁盤標簽類型為GPT parted /dev/sdb mklabel gpt # 將/dev/sdb整個空間分給同一個分區 parted /dev/sdb mkpart primary 0 100% # 忽略警告 ignore # 格式化分區 mkfs -t ext4 /dev/sdb1 # 設定分區label(非必要) e2label /dev/sdb1 /gfsdata01 # 創建掛載目錄 mkdir /gfsdata01 # 臨時掛載 mount /dev/sdb1 /gfsdata01 # 開機自動掛載(永久掛載) echo '/dev/sdb1 /gfsdata01 ext4 defaults 0 0'>>/etc/fstab [root@kvm ~]#
parted的其他常用子命令
刪除分區(rm子命令)
rm NUMBER:NUMBER即為parted子命令p回顯的Number對應的數字;
此命令慎用!!!如果要刪除的分區內已有數據,那么此命令會刪除其中的所有數據,並且是不可逆的。
(parted) p
Model: AVAGO AVAGO (scsi)
Disk /dev/sdb: 18.0TB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags 1 17.4kB 4096GB 4096GB primary (parted) rm 1 (parted) p Model: AVAGO AVAGO (scsi) Disk /dev/sdb: 18.0TB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags (parted)
生產場景分區: 4種