1. 程式人生 > >linux 基礎命令(七)

linux 基礎命令(七)

linux 基礎知識

硬盤管理(分區,swap,LVM)

DPT:分區表(64)
分區方式:MBR,GPT

MSDOS:硬盤總大小小於2T(15個分區)

1個分區占用16個字節,msdos最多可以分為4個分區。主分區,擴展分區,邏輯分區

hd sd vd
hd hd(IED)
sda1 sd表示硬盤的接口類型(SATA,SAS,SCSI);a代表第一塊硬盤 ;1代表第一個分區
sdb2 b代表第二塊硬盤,2代表第二個分區
sda5 第5個分區(邏輯分區)

關於大小:B-KB-MB-GB-TB-PB-EB-ZB-YB 單位1024


磁盤分區
fdisk -l //查詢所有的存儲設備狀態(包括分區表)

df -h //查看掛載情況

fdisk 設備文件 //使用fdisk磁盤管理工具來管理磁盤
m 查看幫助
n 添加新的分區
p 顯示分區表
d 刪除分區
q 不保存並退出
w 保存並退出
t 更改分區的類型編號(type_ID),註意此功能沒有實際作用只是區分分區的作用

例:fdisk /dev/vdb
Command (m for help): n //創建新分區
Command action //創建新分區的類型
e extended //“e”代表擴展分區
p primary partition (1-4) //“p”代表主分區 範圍(1-4)

p //創建主分區
Partition number (1-4): 1 //分區編號為“1”
First cylinder (1-20805, default 1): //起始柱面,默認是“1”
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-20805, default 20805): +500M
//結束柱面或具體的大小,具體大小需要加上“+”和單位,只有數字代表柱面編號
Command (m for help): p //查看分區表

Disk /dev/vdb: 10.7 GB, 10737418240 bytes

16 heads, 63 sectors/track, 20805 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x42e92285

Device Boot Start End Blocks Id System
/dev/vdb1 1 1017 512536+ 83 Linux

Command (m for help): n //新建分區
Command action
e extended
p primary partition (1-4)
e //類型為擴展分區
Partition number (1-4): 4
First cylinder (1018-20805, default 1018):
Using default value 1018
Last cylinder, +cylinders or +size{K,M,G} (1018-20805, default 20805): +5G

Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l //類型為邏輯分區,只有創建完擴展分區才會出現此選項
First cylinder (1018-11421, default 1018):
Using default value 1018
Last cylinder, +cylinders or +size{K,M,G} (1018-11421, default 11421): +1G

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

沒有出現警告提示,就會出現相應的配置文件
[root@rhel6 ~]# ll /dev/vdb*
brw-rw----. 1 root disk 252, 16 Dec 9 13:45 /dev/vdb
brw-rw----. 1 root disk 252, 17 Dec 9 13:45 /dev/vdb1
brw-rw----. 1 root disk 252, 20 Dec 9 13:45 /dev/vdb4
brw-rw----. 1 root disk 252, 21 Dec 9 13:45 /dev/vdb5
brw-rw----. 1 root disk 252, 22 Dec 9 13:45 /dev/vdb6

如果出現警告提示,沒有產生相應的配置文件,需要重啟或輸入命令來重新生成
partx -a /dev/vdb

使用分區
1.分區,產生分區文件後
2.格式化 mkfs.ext4 /dev/vdb1
3.掛載 mount

卸載分區
1.卸載 umount
2.去分區表裏刪除

註意:使用命令是臨時生效,想永久生效配置文件/etc/fstab

UUID //設備唯一標示符

blkid //查看所有設備的UUID

掛載時可以使用UUID


GPT分區表分區(支持2TB以上的硬盤分區,最多可分區128個
使用分區工具parted
[root@rhel7 ~]# parted /dev/vdb
GNU Parted 3.1
Using /dev/vdb
Welcome to GNU Parted! Type ‘help‘ to view a list of commands.
(parted) help //查看幫助
align-check TYPE N check partition N for TYPE(min|opt) alignment
help [COMMAND] print general help, or help on COMMAND
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
mkpart PART-TYPE [FS-TYPE] START END make a partition
name NUMBER NAME name partition NUMBER as NAME
print [devices|free|list,all|NUMBER] display the partition table, available devices,
free space, all found partitions, or a particular partition
quit exit program
rescue START END rescue a lost partition near START and END
rm NUMBER delete partition NUMBER
select DEVICE choose the device to edit
disk_set FLAG STATE change the FLAG on selected device
disk_toggle [FLAG] toggle the state of FLAG on selected device
set NUMBER FLAG STATE change the FLAG on partition NUMBER
toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER
unit UNIT set the default unit to UNIT
version display the version number and copyright
information of GNU Parted
(parted) mklabel gpt //將該硬盤分區表改變成gpt
(parted) mkpart primary 0 -1 //將整塊磁盤分成一個分區
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? ignore
(parted) print //查看分區表
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 17.4kB 10.7GB 10.7GB primary
(parted)quit //退出
[root@rhel7 ~]# mkfs.xfs /dev/vdb1 //格式化該分區
meta-data=/dev/vdb1 isize=256 agcount=4, agsize=655298 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0
data = bsize=4096 blocks=2621191, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@rhel7 ~]# mount /dev/vdb1 /mnt //掛載使用
[root@rhel7 ~]# df -h //查看
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg--rhel7-root 18G 3.0G 15G 18% /
devtmpfs 488M 0 488M 0% /dev
tmpfs 498M 84K 497M 1% /dev/shm
tmpfs 498M 6.8M 491M 2% /run
tmpfs 498M 0 498M 0% /sys/fs/cgroup
/dev/mapper/vg--rhel7-home 497M 26M 472M 6% /home
/dev/vda1 497M 119M 379M 24% /boot
/dev/vdb1 10G 33M 10G 1% /mnt


swap分區 //虛擬內存分區
1.使用分區的方式
1)創建分區
2)格式化分區 mkswap /dev/vdb1
3)激活swap swapon /dev/vdb1
4)查看swap swapon -s
5)查看內存所有的信息 free -m

2.使用大文件方式
1)創建大文件 dd if=/dev/zero of=/tmp/swap bs=1M count=500
2)格式化大文件 mkswap /tmp/swap
3)激活 swapon /tmp/swap
4)查看swap swapon -s
5)查看內存所有的信息 free -m


磁盤配額
作用:可以限制用戶對硬盤的可以空間或最大創建文件的數量,並且還有軟/硬限制
軟限制:當達到軟限制時會提示用戶,但允許用戶在規定的期限內繼續使用
硬限制:當達到硬限制時會提示用戶,強制終止用戶操作

quotacheck //檢測獲取磁盤的磁盤配額使用情況(創建,檢查和修復磁盤配額)
如果沒有文件會產生quota.user和quota.group兩個文件

quota 參數 //用於顯示用戶或組的磁盤配額信息
參數 用戶名或組名
-g 列出組的配盤空間顯示

quotaon //用於激活linux內核中指定文件系統的配盤配額功能

repquota //以報表的格式輸出指定分區,或文件系統的磁盤配額信息

edquota //用於超級用戶編輯其他用戶的quota配額限制
-u 編輯用戶的配額限制
-g 編輯用戶組的配額限制

1.創建分區
2.格式化
3.掛載 帶選項 -o usrquota,grpquota
4./etc/skel目錄下相應的文件復制到家目錄中
5.更改家目錄的權限,擁有者和所屬組
6.關閉selinux setenforce 0
7.檢測 quotacheck -cugm /home/student //會在家目錄創建兩個文件
8.激活磁盤配額 quotaon /home/student !!!想取消磁盤配額時quotaoff //取消激活
9.查看報告 repquota /home/student
10.編輯配額情況 edquota student
11.查看用戶的磁盤配額信息 quota student
12.驗證
13.如果要取消磁盤配額

  [root@localhost ~]# fuser -vm /dev/sdb5(查看用戶使用情況,會出現一個對應的pid,kill即可,別把root的刪了!)

LVM (邏輯卷管理)

PV VG LV

PV:物理卷 整個磁盤或者磁盤分區
VG:卷組 由一個或多個PV組成
LV:邏輯卷 從卷組中取出一部分空間來使用

分區---PV-----VG-----LV

創建的步驟
1.分區
2.創建PV pvcreate /dev/vdb1 /dev/vdb5 /dev/vdb6
3.創建VG vgcreate vgtest /dev/vdb1 /dev/vdb5 /dev/vdb6
4.創建LV lvcreate -n lvfile -L 1G vgtest
5.格式化LV mkfs.ext4 /dev/vgtest/lvfile
6.掛載

查看
pvs //查看pv
pvdisplay //詳細查看pv
vgs //查看vg
vgdisplay //詳細查看vg
lvs //查看lv
lvdisplay //詳細查看lv

LV存儲目錄/dev/vgtest/lvfile
/dev/mapper/vgtest-lvfile

擴展LV
首先確定vg夠不夠
1.vg足夠的情況
lvextend /dev/vgtest/lvfile -L +1G //擴展LV
resize2fs /dev/vgtest/lvfile //擴展文件系統
如果時xfs文件系統需要使用xfs_growfs /dev/vgtest/lvfile 來擴展文件系統

2.vg不足的情況
1)添加硬盤
2)創建PV
3)擴展VG vgextend vgtest /dev/vdb3
4)擴展LV lvextend /dev/vgtest/lvfile -L +1G //擴展LV
5)擴展文件系統 resize2fs /dev/vgtest/lvfile //擴展文件系統

縮小LV
註意:rhel7 xfs文件系統不能縮小;掛載的情況下不可縮小
縮小的步驟
1.umount /media
2.檢測:e2fsck -f /dev/123/lv123 //檢測,總空間,可用空間
3.縮小文件系統:resize2fs /dev/123/lv123 1G //將該LV的文件系統縮小到1G
4.縮小LV:lvresize /dev/123/lv123 -L -2G //將LV空間減少2G

VG的縮小
vgreduce VG的名字 PV的位置 //從VG中取走某個PV(這裏如果你只使用一個分區或一個硬盤創建pv,是不可用的)

linux 基礎命令(七)