Linux系統磁碟管理

来源:https://www.cnblogs.com/tushanbu/archive/2022/07/17/16487959.html
-Advertisement-
Play Games

Linux系統磁碟管理 磁碟分區,格式化,掛載 可以先添加幾塊硬碟,記住要先關閉虛擬機再添加,此處我添加了四塊硬碟 此處是你當初創建虛擬機的時候選擇的磁碟類型,此處也需要與其一致 選擇創建新的硬碟 將其存儲為單個文件,並選擇大小 成功創建 fdisk分區 //生產分區建議: 如無特殊需求, 直接使用 ...


Linux系統磁碟管理


目錄

磁碟分區,格式化,掛載

可以先添加幾塊硬碟,記住要先關閉虛擬機再添加,此處我添加了四塊硬碟

此處是你當初創建虛擬機的時候選擇的磁碟類型,此處也需要與其一致

選擇創建新的硬碟

將其存儲為單個文件,並選擇大小


成功創建

fdisk分區

//生產分區建議: 如無特殊需求, 直接使用整個磁碟即可, 無需分區
//學習分區建議:1P+1E(3L) 2P+1E(2L) 3P+1E(1L) (僅適用於練習)
//正常情況下我們是分一個主分區然後再分一個擴展分區將剩餘的全部給擴展分區,然後再在擴展分區裡面分邏輯分區
//這裡面只有主分區和邏輯分區可以來進行格式化,擴展分區不行它只是用來占位置的,大小非常小

[root@lnh ~]# lsblk 
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  100G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   99G  0 part 
  ├─cs-root 253:0    0 65.2G  0 lvm  /
  ├─cs-swap 253:1    0    2G  0 lvm  [SWAP]
  └─cs-home 253:2    0 31.8G  0 lvm  /home
sdb           8:16   0    5G  0 disk 
sdc           8:32   0    5G  0 disk 
sdd           8:48   0    5G  0 disk 
sde           8:64   0    5G  0 disk 
sr0          11:0    1    9G  0 rom  
//查看分區
[root@lnh ~]# fdisk -l
Disk /dev/sdc: 5 GiB, 5368709120 bytes, 10485760 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 /dev/sda: 100 GiB, 107374182400 bytes, 209715200 sectors //sda硬碟,一共100G,209715200個扇區,
Units: sectors of 1 * 512 = 512 bytes //每個扇區的大小
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos   //顯示這個就是MBR格式的
Disk identifier: 0x7276f405

Device     Boot   Start       End   Sectors Size Id Type
/dev/sda1  *       2048   2099199   2097152   1G 83 Linux//*表示引導的系統盤
/dev/sda2       2099200 209715199 207616000  99G 8e Linux LVM


Disk /dev/sdd: 5 GiB, 5368709120 bytes, 10485760 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 /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 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 /dev/sde: 5 GiB, 5368709120 bytes, 10485760 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 /dev/mapper/cs-root: 65.2 GiB, 69956796416 bytes, 136634368 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 /dev/mapper/cs-swap: 2 GiB, 2181038080 bytes, 4259840 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 /dev/mapper/cs-home: 31.8 GiB, 34158411776 bytes, 66715648 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 /dev/mapper/cs-root,Disk /dev/mapper/cs-swap,Disk /dev/mapper/cs-home是sda裡面分的邏輯捲
//列出所有分區表
[root@lnh ~]# fdisk /dev/sdb 

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x35a0c29f.

Command (m for help): m

Help:

  DOS (MBR)
   a   toggle a bootable flag //切換分區啟動標記
   b   edit nested BSD disklabel //標簽的修改
   c   toggle the dos compatibility flag 切換dos相容模式的一個標記
 
  Generic  //通用
   d   delete a partition  //刪除一個分區
   F   list free unpartitioned space
   l   list known partition types  //列出已知分區的類型
   n   add a new partition //添加一個新的分區
   p   print the partition table //列印分區表
   t   change a partition type   //改變分區的類型
   v   verify the partition table //驗證分區表
   i   print information about a partition //列印分區的信息

  Misc
   m   print this menu  //列印這個菜單 
   u   change display/entry units
   x   extra functionality (experts only)

  Script //腳本
   I   load disk layout from sfdisk script file//顯示佈局的信息
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit //保存並退出
   q   quit without saving changes  //不保存退出

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table
Command (m for help): n //創建分區
Partition type
   p   primary (0 primary, 0 extended, 4 free)//主分區(只能分四個)
   e   extended (container for logical partitions)//擴展分區
Select (default p):        //預設主分區
                        
Using default response p.
Partition number (1-4, default 1):   //預設第一個
First sector (2048-10485759, default 2048):    //預設這個最開始的位置
Last sector, +sectors or +size{K,M,G,T,P} (2048-10485759, default 10485759): +50M

Created a new partition 1 of type 'Linux' and of size 50 MiB.

Command (m for help): p //列印查看分區表
Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 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
Disklabel type: dos
Disk identifier: 0x35a0c29f

Device     Boot Start    End Sectors Size Id Type
/dev/sdb1        2048 104447  102400  50M 83 Linux
Command (m for help): n  //創建分區
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): e      //擴展分區
Partition number (2-4, default 2):     //預設第二個
First sector (104448-10485759, default 104448):   //開始的位置
Last sector, +sectors or +size{K,M,G,T,P} (104448-10485759, default 10485759):   //結束的位置,預設結束就是將剩餘的都給它了

Created a new partition 2 of type 'Extended' and of size 5 GiB.

Command (m for help): p    //列印分區表
Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 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
Disklabel type: dos
Disk identifier: 0x35a0c29f

Device     Boot  Start      End  Sectors Size Id Type
/dev/sdb1         2048   104447   102400  50M 83 Linux
/dev/sdb2       104448 10485759 10381312   5G  5 Extended
Command (m for help): n  創建分區
All space for primary partitions is in use.
Adding logical partition 5   //因為主分區是1-4,然後主分區選擇了1,擴展分區選擇2,3和4也沒有了,所以現在沒有位置進行選擇了,只能預設選擇邏輯分區
First sector (106496-10485759, default 106496): //開始的位置
Last sector, +sectors or +size{K,M,G,T,P} (106496-10485759, default 10485759): +200M

Created a new partition 5 of type 'Linux' and of size 200 MiB.

Command (m for help): p  //列印分區表
Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 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
Disklabel type: dos
Disk identifier: 0x41f56908

Device     Boot  Start      End  Sectors  Size Id Type
/dev/sdb1         2048   104447   102400   50M 83 Linux
/dev/sdb2       104448 10485759 10381312    5G  5 Extended
/dev/sdb5       106496   516095   409600  200M 83 Linux
//sd2是擴展分區你現在看起來是5G,但是它是沒有大小的
Command (m for help): w //保存
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
[root@lnh ~]# partprobe 
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
//刷新分區表,使其生效
[root@lnh ~]# lsblk 
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  100G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   99G  0 part 
  ├─cs-root 253:0    0 65.2G  0 lvm  /
  ├─cs-swap 253:1    0    2G  0 lvm  [SWAP]
  └─cs-home 253:2    0 31.8G  0 lvm  /home
sdb           8:16   0    5G  0 disk 
├─sdb1        8:17   0   50M  0 part 
├─sdb2        8:18   0    1K  0 part 
└─sdb5        8:21   0  200M  0 part 
sdc           8:32   0    5G  0 disk 
sdd           8:48   0    5G  0 disk 
sde           8:64   0    5G  0 disk 
sr0          11:0    1    9G  0 rom  
//此時再查看,出現了剛剛的配置,然後sdb2是擴展分區幾乎是沒有大小的,只是占個位置,真正有大小的是主分區和邏輯分區

磁碟格式化

[root@lnh ~]# mkfs.
mkfs.cramfs  mkfs.ext3    mkfs.minix   
mkfs.ext2    mkfs.ext4    mkfs.xfs     
//TAB兩下就是顯示當前系統支持的格式化格式
[root@lnh ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 51200 1k blocks and 12824 inodes
Filesystem UUID: 1b8f98e1-75b2-483c-86cb-f40bae3c8c4c
Superblock backups stored on blocks: 
	8193, 24577, 40961

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
//用ext4格式的格式化之前的1分區

磁碟掛載

臨時掛載:
[root@lnh ~]# lsblk 
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  100G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   99G  0 part 
  ├─cs-root 253:0    0 65.2G  0 lvm  /
  ├─cs-swap 253:1    0    2G  0 lvm  [SWAP]
  └─cs-home 253:2    0 31.8G  0 lvm  /home
sdb           8:16   0    5G  0 disk 
├─sdb1        8:17   0   50M  0 part 
├─sdb2        8:18   0    1K  0 part 
└─sdb5        8:21   0  200M  0 part 
sdc           8:32   0    5G  0 disk 
sdd           8:48   0    5G  0 disk 
sde           8:64   0    5G  0 disk 
sr0          11:0    1    9G  0 rom  
//先查看一下我們要掛載到哪,此處我選擇的是sdb1
[root@lnh ~]# ls /media/  //準備掛載到這裡
[root@lnh ~]# echo 'xbz' > /media/abc  //列印xbz到這個目錄的文件下 
[root@lnh ~]# cat /media/abc    
xbz
[root@lnh ~]# mount /dev/sdb1 /media/     //掛載
[root@lnh ~]# df -hl     //查看掛載成功
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             956M     0  956M   0% /dev
tmpfs                975M     0  975M   0% /dev/shm
tmpfs                975M  8.7M  966M   1% /run
tmpfs                975M     0  975M   0% /sys/fs/cgroup
/dev/mapper/cs-root   66G  3.3G   62G   5% /
/dev/mapper/cs-home   32G  260M   32G   1% /home
/dev/sda1           1014M  178M  837M  18% /boot
tmpfs                195M     0  195M   0% /run/user/0
/dev/sdb1             45M  1.1M   40M   3% /media
[root@lnh ~]# ls /media/
lost+found
[root@lnh ~]# cd /media/
[root@lnh media]# ls -a
.  ..  lost+found
//可以看見掛載後原來的東西不見了,顯示的是掛載後的內容.因為現在看見的這個地方不是之前那個位置,而是sdb1這個分區裡面
[root@lnh media]# touch 333
[root@lnh media]# ls
333  lost+found
[root@lnh ~]# umount /dev/sdb1
[root@lnh ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             956M     0  956M   0% /dev
tmpfs                975M     0  975M   0% /dev/shm
tmpfs                975M  8.7M  966M   1% /run
tmpfs                975M     0  975M   0% /sys/fs/cgroup
/dev/mapper/cs-root   66G  3.3G   62G   5% /
/dev/mapper/cs-home   32G  260M   32G   1% /home
/dev/sda1           1014M  178M  837M  18% /boot
tmpfs                195M     0  195M   0% /run/user/0
[root@lnh ~]# ls /media/
abc
//可以看見出現了之前目錄的
臨時掛載2
[root@lnh ~]# blkid /dev/sdb1
/dev/sdb1: UUID="1b8f98e1-75b2-483c-86cb-f40bae3c8c4c" BLOCK_SIZE="1024" TYPE="ext4" PARTUUID="41f56908-01"
//查看其uuid用其進行掛載
[root@lnh ~]# mount UUID="1b8f98e1-75b2-483c-86cb-f40bae3c8c4c" /media/
[root@lnh ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             956M     0  956M   0% /dev
tmpfs                975M     0  975M   0% /dev/shm
tmpfs                975M  8.7M  966M   1% /run
tmpfs                975M     0  975M   0% /sys/fs/cgroup
/dev/mapper/cs-root   66G  3.3G   62G   5% /
/dev/mapper/cs-home   32G  260M   32G   1% /home
/dev/sda1           1014M  178M  837M  18% /boot
tmpfs                195M     0  195M   0% /run/user/0
/dev/sdb1             45M  1.1M   40M   3% /media
[root@lnh ~]# ls /media/
333  lost+found
永久掛載:
[root@lnh ~]# blkid /dev/sdb1
/dev/sdb1: UUID="1b8f98e1-75b2-483c-86cb-f40bae3c8c4c" BLOCK_SIZE="1024" TYPE="ext4" PARTUUID="41f56908-01"
[root@lnh ~]# vim /etc/fstab 

//分區標識(UUID或設備名) 掛載點 文件類型 掛載參數 不檢查 不備份

//掛載的地方 掛載的系統格式 掛載的選項預設 不檢查不備份(0 0)

[root@lnh ~]# mount -a   //讀取一下
[root@lnh ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             956M     0  956M   0% /dev
tmpfs                975M     0  975M   0% /dev/shm
tmpfs                975M  8.8M  966M   1% /run
tmpfs                975M     0  975M   0% /sys/fs/cgroup
/dev/mapper/cs-root   66G  3.3G   62G   5% /
/dev/mapper/cs-home   32G  260M   32G   1% /home
/dev/sda1           1014M  178M  837M  18% /boot
tmpfs                195M     0  195M   0% /run/user/0
/dev/sdb1             45M  1.1M   40M   3% /media
//查看,此時重啟一下也是掛載的,不過一定要小心,不能寫錯不然就會重啟不出來

gdisk分區

[root@lnh ~]# dnf -y install gdisk
//一般是要先進行下載的
[root@lnh ~]# lsblk 
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  100G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   99G  0 part 
  ├─cs-root 253:0    0 65.2G  0 lvm  /
  ├─cs-swap 253:1    0    2G  0 lvm  [SWAP]
  └─cs-home 253:2    0 31.8G  0 lvm  /home
sdb           8:16   0    5G  0 disk 
├─sdb1        8:17   0   50M  0 part /media
├─sdb2        8:18   0    1K  0 part 
└─sdb5        8:21   0  200M  0 part 
sdc           8:32   0    5G  0 disk 
sdd           8:48   0    5G  0 disk 
sde           8:64   0    5G  0 disk 
sr0          11:0    1    9G  0 rom  
//查看一下,掛載到sdc
[root@lnh ~]# gdisk /dev/sdc
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: not present  //沒提供
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.
Command (? for help): ?
b	back up GPT data to a file
c	change a partition's name
d	delete a partition //刪除分區
i	show detailed information on a partition //列出分區表類型
l	list known partition types
n	add a new partition  //創建新分區
o	create a new empty GUID partition table (GPT)
p	print the partition table  //列印分區表
q	quit without saving changes //不保存退出
r	recovery and transformation options (experts only)
s	sort partitions
t	change a partition's type code  //改變分區表類型
v	verify disk
w	write table to disk and exit   保存並退出
x	extra functionality (experts only)
?	print this menu  //列印這個菜單
//查看幫助
Command (? for help): n  //創建分區
Partition number (1-128, default 1):    //可以創建128個主分區 
First sector (34-10485726, default = 2048) or {+-}size{KMGTP}://開始 
Last sector (2048-10485726, default = 10485726) or {+-}size{KMGTP}: +50M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): //預設格式
Changed type of partition to 'Linux filesystem'
Command (? for help): p
Disk /dev/sdc: 10485760 sectors, 5.0 GiB
Model: VMware Virtual S
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 5E84DBA9-4E92-41C8-9694-5B055771ED16
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 10485726
Partitions will be aligned on 2048-sector boundaries
Total free space is 10383293 sectors (5.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          104447   50.0 MiB    8300  Linux filesystem
Command (? for help): w  //保存

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y   //確定
OK; writing new GUID partition table (GPT) to /dev/sdc.
The operation has completed successfully.
[root@lnh ~]# partprobe  //使配置生效
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
[root@lnh ~]# lsblk  //查看分區表
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  100G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   99G  0 part 
  ├─cs-root 253:0    0 65.2G  0 lvm  /
  ├─cs-swap 253:1    0    2G  0 lvm  [SWAP]
  └─cs-home 253:2    0 31.8G  0 lvm  /home
sdb           8:16   0    5G  0 disk 
├─sdb1        8:17   0   50M  0 part /media
├─sdb2        8:18   0  512B  0 part 
└─sdb5        8:21   0  200M  0 part 
sdc           8:32   0    5G  0 disk 
└─sdc1        8:33   0   50M  0 part 
sdd           8:48   0    5G  0 disk 
sde           8:64   0    5G  0 disk 
sr0          11:0    1    9G  0 rom  
[root@lnh ~]# fdisk -l   //查看格式
Disk /dev/sdc: 5 GiB, 5368709120 bytes, 10485760 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
Disklabel type: gpt       //GPT格式
Disk identifier: 5E84DBA9-4E92-41C8-9694-5B055771ED16

Device     Start    End Sectors Size Type
/dev/sdc1   2048 104447  102400  50M Linux filesystem


Disk /dev/sda: 100 GiB, 107374182400 bytes, 209715200 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
Disklabel type: dos    //MBR格式
Disk identifier: 0x7276f405

Device     Boot   Start       End   Sectors Size Id Type
/dev/sda1  *       2048   2099199   2097152   1G 83 Linux
/dev/sda2       2099200 209715199 207616000  99G 8e Linux LVM


Disk /dev/sdd: 5 GiB, 5368709120 bytes, 10485760 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 /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 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
Disklabel type: dos
Disk identifier: 0x41f56908

Device     Boot  Start      End  Sectors  Size Id Type
/dev/sdb1         2048   104447   102400   50M 83 Linux
/dev/sdb2       104448 10485759 10381312    5G  5 Extended
/dev/sdb5       106496   516095   409600  200M 83 Linux


Disk /dev/sde: 5 GiB, 5368709120 bytes, 10485760 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 /dev/mapper/cs-root: 65.2 GiB, 69956796416 bytes, 136634368 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 /dev/mapper/cs-swap: 2 GiB, 2181038080 bytes, 4259840 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 /dev/mapper/cs-home: 31.8 GiB, 34158411776 bytes, 66715648 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
//gdisk進行分區的是GPT格式,fdisk進行分區的是MRP格式

交換分區SWAP

交換分區SWAP就是LINUX下的虛擬記憶體分區,它的作用是在物理記憶體使用完之後,將磁碟空間(也就是SWAP分區)虛擬成記憶體來使用。

交換分區一般指定虛擬記憶體的大小為實際記憶體的1.5-2倍。如果實際記憶體超過8GB,可以直接劃分16GB給虛擬記憶體即可,如果虛擬記憶體不夠用的情況,須增加一個虛擬磁碟,由於不能給原有的磁碟重新分區,所以可以選擇新建。

swap分區創建與使用

用文件的方式進行:
只是臨時的
[root@lnh ~]# ls /opt/
[root@lnh ~]# dd if=/dev/zero of=/opt/swap bs=1024M count=1
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 11.9777 s, 89.6 MB/s
//if:指定源  一般寫/dev/zero of:指定目標 bs:定義塊大小
count:數量
[root@lnh ~]# ll /opt/
total 1048576
-rw-r--r--. 1 root root 1073741824 Jul 17 16:12 swap
//創建了一個1G的文件
[root@lnh ~]# mkswap -f /opt/swap   //格式化
mkswap: /opt/swap: insecure permissions 0644, 0600 suggested. //這是個不完全的許可權644,請改成600
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=c06e75d2-7a3c-4b9c-a5ff-0790cba83ca9
[root@lnh ~]# chmod 0600 /opt/swap 
//改一下讓其放心
[root@lnh ~]# swapon -f /opt/swap  //進行掛載
[root@lnh ~]# free -m  //查看
              total        used        free      shared  buff/cache   available
Mem:           1948         243        1103           8         602        1543
Swap:          3103           0        3103
[root@lnh ~]# swapoff /opt/swap  //取消掛載
[root@lnh ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1948         243        1103           8         602        1544
Swap:          2079           0        2079
//可以看見掛載上去時加了1024,取消後還原
永久掛載:
1.用系統裡面自帶的文件進行操作的
[root@lnh ~]# vim /etc/fstab


//分區標識(UUID或設備名) 掛載點 文件類型 掛載參數 不檢查 不備份

此時你已經寫入配置文件裡面去了,必須要是下次啟動的時候才會生效,現在生效不了
[root@lnh ~]# swapon -f /opt/swap
[root@lnh ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1948         244        1098           8         605        1543
Swap:          3103           0        3103
//可以用這個命令讓其生效
2.可以用系統的空間進行操作
[root@lnh ~]# swapon -s
Filename				Type		Size	Used	Priority
/dev/dm-1                              	partition	2129916	0	-2
/opt/swap                              	file    	1048572	0	-3
//上面的是分區下麵的是我們配置的文件交換分區
[root@lnh ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1948         244        1098           8         605        1543
Swap:          3103           0        3103
//可以查看是由哪些組成
[root@lnh ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n    //創建分區
All space for primary partitions is in use.
Adding logical partition 6        //預設
First sector (518144-10485759, default 518144):  //開始預設
Last sector, +sectors or +size{K,M,G,T,P} (518144-10485759, default 10485759): +1000M

Created a new partition 6 of type 'Linux' and of size 1000 MiB.

Command (m for help): p      //列印
Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 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
Disklabel type: dos
Disk identifier: 0x41f56908

Device     Boot  Start      End  Sectors  Size Id Type
/dev/sdb1         2048   104447   102400   50M 83 Linux
/dev/sdb2       104448 10485759 10381312    5G  5 Extended
/dev/sdb5       106496   516095   409600  200M 83 Linux
/dev/sdb6       518144  2566143  2048000 1000M 83 Linux  //此處格式不對

Command (m for help): l   //查看有哪些格式

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 hidden or  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
 5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
 6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad hi ea  Rufus alignment
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         eb  BeOS fs        
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ee  GPT            
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        ef  EFI (FAT-12/16/
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f0  Linux/PA-RISC b
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f1  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f4  SpeedStor      
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      f2  DOS secondary  
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fb  VMware VMFS    
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fc  VMware VMKCORE 
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fd  Linux raid auto
1c  Hidden W95 FAT3 75  PC/IX           bc  Acronis FAT32 L fe  LANstep        
1e  Hidden W95 FAT1 80  Old Minix       be  Solaris boot    ff  BBT            

Command (m for help): t   //修改格式
Partition number (1,2,5,6, default 6): 
Hex code (type L to list all codes): 82

Changed type of partition 'Linux' to 'Linux swap / Solaris'.

Command (m for help): p   //列印
Disk /dev/sdb: 5 GiB, 5368709120 bytes, 10485760 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
Disklabel type: dos
Disk identifier: 0x41f56908

Device     Boot  Start      End  Sectors  Size Id Type
/dev/sdb1         2048   104447   102400   50M 83 Linux
/dev/sdb2       104448 10485759 10381312    5G  5 Extended
/dev/sdb5       106496   516095   409600  200M 83 Linux
/dev/sdb6       518144  2566143  2048000 1000M 82 Linux swap / Solaris
Command (m for help): w   //保存
The partition table has been altered.
Syncing disks.
[root@lnh ~]# partprobe 
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
//使修改生效
[root@lnh ~]# mkswap /dev/sdb6
Setting up swapspace version 1, size = 1000 MiB (1048571904 bytes)
no label, UUID=bca092ec-58f6-4fa1-8268-b8bfb13064ac
//格式化
[root@lnh ~]# blkid /dev/sdb6
/dev/sdb6: UUID="bca092ec-58f6-4fa1-8268-b8bfb13064ac" TYPE="swap" PARTUUID="41f56908-06"
//查看uuid 和格式
[root@lnh ~]# vim /etc/fstab 


//分區標識(UUID或設備名) 掛載點 文件類型 掛載參數 不檢查 不備份

[root@lnh ~]# swapon -a  //使其生效
[root@lnh ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1948         245        1089           8         613        1541
Swap:          4103           0        4103
//查看
[root@lnh ~]# lsblk 
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0  100G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   99G  0 part 
  ├─cs-root 253:0    0 65.2G  0 lvm  /
  ├─cs-swap 253:1    0    2G  0 lvm  [SWAP]
  └─cs-home 253:2    0 31.8G  0 lvm  /home
sdb           8:16   0    5G  0 disk 
├─sdb1        8:17   0   50M  0 part /media
├─sdb2        8:18   0  512B  0 part 
├─sdb5        8:21   0  200M  0 part 
└─sdb6        8:22   0 1000M  0 part [SWAP]
sdc           8:32   0    5G  0 disk 
└─sdc1        8:33   0   50M  0 part 
sdd           8:48   0    5G  0 disk 
sde           8:64   0    5G  0 disk 
sr0          11:0    1    9G  0 rom  
//可以看見其格式發生改變

磁碟故障案例

[root@lnh ~]# dd if=/dev/zero of=/opt/shan bs=1k count=1024
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.001302 s, 805 MB/s
//生成一個1024k的磁碟
[root@lnh ~]# mkfs.ext4 -i 1024 /opt/shan  //格式化
mke2fs 1.45.6 (20-Mar-2020)

Filesystem too small for a journal
Discarding device blocks: done                            
Creating filesystem with 1024 1k blocks and 1024 inodes

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done

[root@lnh ~]# mkdir /hai
[root@lnh ~]# mount -t ext4 -o loop /opt/shan /hai/
//掛載,因為是文件所以要加-o loop
[root@lnh ~]# cd /hai/
[root@lnh hai]# touch {1..20000}
...
touch: cannot touch '19994': No space left on device
touch: cannot touch '19995': No space left on device
touch: cannot touch '19996': No space left on device
touch: cannot touch '19997': No space left on device
touch: cannot touch '19998': No space left on device
touch: cannot touch '19999': No space left on device
touch: cannot touch '20000': No space left on device
//inode被占滿
[root@lnh hai]# df -i|grep hai
/dev/loop2              1024  1024        0  100% /hai
[root@lnh hai]# df -h|grep hai
/dev/loop2           891K   42K  778K   6% /hai
inode被占滿,剩餘block也是無法繼續使用,可以看見有空餘的但是無法使用
[root@lnh ~]# dd if=/dev/zero of=/opt/shan bs=1024M count=2
2+0 records in
2+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 2.44033 s, 880 MB/s
[root@lnh ~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             956M     0  956M   0% /dev
tmpfs                975M     0  975M   0% /dev/shm
tmpfs                975M  8.8M  966M   1% /run
tmpfs                975M     0  975M   0% /sys/fs/cgroup
/dev/mapper/cs-root   66G  8.2G   57G  13% /   
/dev/mapper/cs-home   32G  260M   32G   1% /home
/dev/sda1           1014M  178M  837M  18% /boot
tmpfs                195M     0  195M   0% /run/user/0
/dev/sdb1             45M  1.1M   40M   3% /media
/dev/loop1           891K   21K  799K   3% /xxb
/dev/loop2           891K   42K  778K   6% /hai
[root@lnh opt]# > /opt/shan
[root@lnh opt]# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             956M     0  956M   0% /dev
tmpfs                975M     0  975M   0% /dev/shm
tmpfs                975M  8.8M  966M   1% /run
tmpfs                975M     0  975M   0% /sys/fs/cgroup
/dev/mapper/cs-root   66G  4.2G   61G   7% /    //可以看見減少了4G
/dev/mapper/cs-home   32G  260M   32G   1% /home
/dev/sda1           1014M  178M  837M  18% /boot
tmpfs                195M     0  195M   0% /run/user/0
/dev/sdb1             45M  1.1M   40M   3% /media
/dev/loop1           891K   21K  799K   3% /xxb
/dev/loop2           891K   42K  778K   6% /hai
//正確做法如下, 清空該文件即可釋放文件內容 (> access.log)
[root@lnh ~]# dd if=/dev/zero of=/opt/xxx bs=1024M count=2
2+0 records in
2+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 2.44033 s, 880 MB/s
[root@lnh ~]#vim /opt/xxx   //打開這個文件


可以看見刪除後空間沒有得到釋放


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 啥是倍增思想? 倍增,每次將範圍擴大或減少一倍而達到加速的效果 舉個慄子,你想要跳到15米遠的地方,你怎麼找到這個15這個地方,一步一步跳嗎,利用倍增的話 預設一個k使2^k>15值 ,這裡我們假設k=5, 2^5=32 >15 k- -; k=4; 跳過了,不跳 2^4=16 >15 k- -; ...
  • 大數 如果基本的整數和浮點數精度不能夠滿足需求,那麼可以使用java.math包中兩個很有用的類:BigInteger和BigDecimal。這兩個類可以處理包含任意長度數字序列的數值。BigInteger類實現任意精度的整數運算,BigDecimal實現任意精度的浮點數運算。 使用靜態的value ...
  • Java 異常機制(也許是全網最獨特視角) 一、Java中的“異常“指什麼 什麼是異常 一句話簡單理解:異常是程式運行中的一些異常或者錯誤。 (純字面意思) Error類 和 Exception類 Java中“萬物皆對象”,異常也不例外, Java把異常當做對象來處理,並將異常分為兩大類——Erro ...
  • 一、業務需求 在工作中遇到一個場景,軟體bug或功能發佈之後,會通知測試進行測試,要求寫一個小工具能自動發送郵件,功能包含發送和抄送支持多個,因為只是通知沒有寫進附件功能,這個其他博客都有搜一下就可以了。 二、以下是實現代碼 這裡要註意如果接收者郵箱三種方式都沒配置則需要手動輸入,其他的沒配置就是彈 ...
  • 值類型 整數,浮點數,布爾值,字元,枚舉,結構體 引用類型 數組,用戶自定義的類,介面,委托,object,字元串 值類型與引用類型的區別: 存放地址不同,值類型存放在棧中,引用類型存放在堆中。 記憶體分佈: 在程式運行時,記憶體分別為四個區域塊,分別是:堆區,棧區,全局區,代碼區 存放函數內的局部變數 ...
  • 類是模板 對象是基於模板生成的實體 Car表示類,car表示變數,new關鍵字,Car()類的構造方法 Car car = new Car(); 構造方法:new欄位後跟的方法,用於創建一個對象 成員變數:類中聲明的變數稱為這個類的成員變數,類的成員變數需要對象.變數 成員方法:類中聲明的方法稱為這 ...
  • 三目運算符一般用在不是是就是否的結果上,和if else用法基本相似但先比較之下代碼量更上,熟悉過後也是比較容易上手的。 三目運算符 點擊查看代碼 // 獲得二者之間的最小值 public int GetMinValue(int numberA,int numberB){ // 含義:`numebr ...
  • 硬體準備: CH32V103 開發板/核心版, WCH-Link. 軟體準備: 軟體主要是用於編譯的 RISC-V GCC , 和用於燒錄的 OpenOCD., RISC-V GCC 可以選擇公版或者WCH版, OpenOCD 暫時只能用WCH定製版本, 用公版的無法識別 wlink ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...