自動快照snapper
下載
部落格:https://tomoku-dm.github.io/2018/06/17/2-snapper/
文件:https://documentation.suse.com/zh-cn/sles/12-SP5/html/SLES-all/cha-snapper.html
部落格裡沒說要單獨分割槽給snapper的備份檔案
全新安裝時建議分割槽
/boot/efi
512MB/boot
512MBlvm
剩餘500GB/
50GB/shot
10GB,快照只記錄改動前的檔案,沒有改動,就不會增加大小。/home
剩餘440GB
使用snapper,每天建立增量快照,在電腦的空閒時刻自動整合增量快照
root@fedora:/dev# lsblk -f nvme1n1
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
nvme1n1
├─nvme1n1p1
│ vfat FAT32 BOOT-EFI 158A-87C5 492M 4% /boot/efi
├─nvme1n1p2
│ ext4 1.0 boot fc12efa4-0923-4eef-9a6f-182100f48dd7 40.9M 84% /boot
└─nvme1n1p3
│ LVM2_m LVM2 hLwtbD-M3lI-mL6a-0WGw-egUH-vez4-mBLFTY
├─l-fedora
│ ext4 1.0 root e94089a9-4e3d-483f-95c6-821570ffc60e 2G 85% /
└─l-data
ext4 1.0 home 1965ed8f-2873-4e11-94b1-e64da46da128 405G 2% /home
檢視儲存資訊
有人吐槽btrfs不穩定,所以還是老辦法吧:lvm2-ext4
建議現在虛擬機器內練習一下,再上實機。
u盤用ventoy燒錄(多系統支援),進入linux的iso映象,開啟控制檯
liveuser@localhost-live:/$ lsblk # 顯示所有掛載的儲存裝置
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 2G 1 loop # 檔案掛載成檔案系統,比如swapfile
loop1 7:1 0 8G 1 loop
├─live-rw 253:0 0 8G 0 dm / #掛載在根的device mapper,通用的抽象虛擬層,可能是LVM或加密裝置
└─live-base 253:1 0 8G 1 dm
loop2 7:2 0 32G 0 loop
└─live-rw 253:0 0 8G 0 dm /
sr0 11:0 1 2.1G 0 rom /run/initramfs/live # 只讀,可以是CD-rom, dvd-rom……
zram0 251:0 0 1.9G 0 disk [SWAP] # 用作SWAP的磁碟(虛擬記憶體-分割槽版)
vda 252:0 0 1G 0 disk # 可讀寫磁碟
vda是我們要操作的硬碟
建立lvm2:pv,vg,lvcreate
pv物理卷→vg卷組→lv邏輯卷
sudo -i #如果執行這條語句,後面則無須再用sudo
sudo pvcreate /dev/vda
sudo vgcreate -s 4M myvg /dev/vda # -s最小分配單元為4M,即後期擴容、收縮至少4M(-s的預設值也是4M)
sudo lvcreate -l 90%FREE -n mylv myvg
sudo mkfs.ext4 /dev/myvg/mylv # 別忘格式化
-l 90%FREE
所有可用空間的90%
-l 80%VG
該卷組的80%
-l 70%PVS
所有物理卷的70%
-l 1000
1000塊最小分配單元(PE: physical extent)
掛載
sudo mkdir /mnt/mylv # 建立掛載點
sudo mount /dev/myvg/mylv /mnt/mylv # 臨時掛載,重啟失效
nano /etc/fstab # 永久掛載
# fstab內新增新行,按ctrl+s儲存,Ctrl+x退出:
/dev/myvg/mylv /mnt/mylv ext4 defaults 0 0
sudo mount -a # 掛載所有在/etc/fstab檔案中定義的檔案系統
收縮lvm
硬碟用幾年了的,最好先備份一下。
sudo umount /mnt/mylv #解除安裝
sudo e2fsck -f /dev/myvg/mylv #檢查檔案系統的一致性
df -h /dev/myvg/mylv #檢視實際佔用大小Used
#收縮檔案系統
sudo resize2fs /dev/myvg/mylv 300M #調整大小到300M
sudo resize2fs -M /dev/myvg/mylv #縮到儘可能小-M
sudo resize2fs /dev/myvg/mylv #擴大到最大,上限為lv邏輯卷大小
sudo lvreduce -L 300M /dev/myvg/mylv #收縮邏輯卷
sudo mount /dev/myvg/mylv /mnt/mylv #重新掛載
更多註解
df --output=source,size /dev/myvg/mylv
顯示檔案系統的大小。
tail -n +2
刪除df命令的標題行,從第二行開始輸出。
awk '{printf "%dM\n", $2/1024}'
將大小從Kb(Kb=1K-blocks=1000)轉換為。
umount: /mnt/mylv: target is busy.
sudo lsof /mnt/mylv #列舉佔用的程序
sudo lsof /mnt/mylv | awk 'NR>1 {print $2}' | xargs -r kill #懶
一些關鍵程式會拒絕被kill
,就得使用kill -9
殺死
備份lvm
先加一份文字,驗證lvm備份/恢復是否正確
# 下面2種方式2選一
sudo chmod 777 /mnt/mylv #許可權程式碼
sudo chown $USER:$USER /mnt/mylv #更改擁有權
cd /mnt/mylv && echo "before" > a.txt
許可權程式碼 & 使用者組
&&
表示前面執行成功,才會執行後面的語句
>
表示將"before"覆蓋寫入到a.txt;>>
則是追加寫入
許可權程式碼
7的二進位制為111,3位數分別:讀/寫/執行,r/w/x(eXecute)
777,3位數分別:所有者/組/其他使用者,owner/group/others
常用使用者組
chown myuser:mygroup myfile
- root:系統管理員組。
wheel
:通常用於擁有sudo許可權的使用者組。
daemon
:執行守護程序的使用者組。adm
:通常用於系統監控任務的使用者組。- sys:通常用於擁有系統相關檔案和目錄的使用者組。
- bin:擁有許多可執行檔案的使用者組。
- tty:擁有終端裝置的使用者組。
- disk:擁有磁碟裝置的使用者組。
- lp:擁有列印裝置的使用者組。
- cdrom:擁有CD-ROM裝置的使用者組。
- audio:擁有音訊裝置的使用者組。
- video:擁有影片裝置的使用者組。
plugdev
:允許使用者訪問插入的裝置(如USB鍵盤,滑鼠等)的使用者組。mail
:用於郵件系統的使用者組。
sudo lvcreate --size 100M --snapshot --name mysnapshot /dev/myvg/mylv # 快照=新建卷
sudo lvremove /dev/myvg/mysnapshot # 當你覺得這份快照沒必要時
請注意,當快照的空間用完時,快照將自動被刪除。因此,你需要確保你的快照有足夠的空間來儲存你打算進行的所有修改。
恢復lvm
先修改文字echo "after" >> a.txt
sudo umount /mnt/mylv #解除安裝
sudo lvconvert --merge /dev/myvg/mysnapshot #恢復
sudo mount /dev/myvg/mylv /mnt/mylv #重新掛載
看一看a.txt
的內容吧
為什麼沒有GUI?
假設你要遠端ssl連線一臺伺服器去擴容,你覺得有gui介面嗎?