作者: cal22cal 時間: 2015-8-26 19:51 標題: gentoo 用 btrfs zram 記
本帖最後由 cal22cal 於 2015-8-27 09:32 編輯
唔好話我空手套白狼, 都吹吓水咁啦,
以下有啲係 gentoo 嘢, 唔知噏乜就 skip 算, 唔好嘥時間睇
話說部ok垃圾機 up 咗去 8G ram,
又行得順咗好多,
free 返啲 hdd 位, 又起多個 vm 玩吓
btrfs pros & cons 唔吹, 不過有啲嘢又可以噏吓
有啲 distro, 都叫人 set 個 default root sysvolume
嚟 boot / , 如果要 boot old snapshot sysvolume 又要 set 過,
亦都有好多方法, e.g. 改 fstab, set 個 default root sysvolume ...
大多數都要 boot 多一次機, 先可以用個 old snapshot sysvolume
咁樣有乜方法, 可以唔洗改 fstab, 轉 boot sysvolume ...
嚟 boot 個 snapshot
好懶嘅我, 經 google 大神指示係咁, 改 fstab
- LABEL=XXX / btrfs rw,noatime,compress=lzo,autodefrag 0 0
注意 fstab btrfs fsck flags 係全 0
grub2 唔識, 仲係用緊 grub lagecy
冇 set 過 default subvolume
用 kernel command 嚟指定個 / sysvolume, e.g.
root filesystem 個 sysvolume 係 ROOT-FS
- title ROOT-FS 4.1.6-gentoo
- root (hd0,1)
- kernel /kernel-genkernel-x86_64-4.1.6-gentoo root=UUID=xxx-xxx-xxx-xxx [color=Blue]rootflags=subvol=ROOT-FS[/color]
- initrd /initramfs-genkernel-x86_64-4.1.6-gentoo
- ln -snf kernel-genkernel-x86_64-4.1.6-gentoo snap-kernel
- ln -snf initramfs-genkernel-x86_64-4.1.6-gentoo snap-initramfs
當然, menu.lst 要加 entry for new kernel
咁樣造 / snapshot 嗰時, 就造多幾個, 冇壞,
1. snapshot--time.stamp
2. snapshot--ROOT_FS_0
3. snapshot--ROOT_FS_1
play safe, 3 個完全一樣
再响 grub.conf add 多條 entry
- title snapshot-ROOT-FS_1
- root (hd0,1)
- kernel /snap-kernel root=UUID=xxx-xxx-xxx-xxx [color=Blue]rootflags=subvol=snapshot-ROOT-FS_1[/color]
- initrd /snap-initramfs
小心, boot 完 backup sanpshot, 如果頭先個 ROOT-FS sysvolume
要 rollback to latest snapshot, wiki 話,
要 del 咗, 先好整 snapshot, i.e.
响 reboot 之前,
mv /path/ROOT-FS /path/problem
or
btrfs subvol delete -C /path/ROOT-FS && \
btrfs subvolume snapshot /path/snapshot-ROOT-FS_1 /path/ROOT-FS
唔好直接 overwrite
希望冇吹錯嘢啦
原本仲想吹 swap under zram, 不過太長, 下一次先算
edit:-
zram added.
作者: cal22cal 時間: 2015-8-27 08:59
btrfs 原來仲有嘢未講完,
snapshot / 個 file time stamp 唔夾 ls -lQrtHh
要 touch / 咗先做 snapshot
- fstab
- # BTRFS btrfs disk top
- LABEL=XXX /mnt/TOP btrfs defaults,noauto,subvolid=0 0 0
- #!/bin/bash
- mkdir -p /boot.bak.for.snapshot
- mount /boot
- # backup /boot
- echo "backup /boot to /boot.bak.for.snapshot"
- rsync -avc --delete --exclude 'lost+found' /boot/ /boot.bak.for.snapshot
- umount /boot && echo "umount /boot ... ok"
- mount /mnt/TOP
- btrfs subvol delete -C /mnt/TOP/snapshot-ROOT-FS_0 && \
- btrfs subvol delete -C /mnt/TOP/snapshot-ROOT-FS_1 && \
- touch /mnt/TOP/ROOT-FS && \
- btrfs subvolume snapshot /mnt/TOP/ROOT-FS /mnt/TOP/snapshot-ROOT-FS_0 && \
- btrfs subvolume snapshot /mnt/TOP/ROOT-FS /mnt/TOP/snapshot-ROOT-FS_1 && \
- btrfs subvolume snapshot /mnt/TOP/ROOT-FS /mnt/TOP/snapshot-ROOT-FS--`date +\%Y-\%m-\%d_\%H.\%M.\%S`
fs 炒咗粉, 要 restore backup from external usb hdd

作者: cal22cal 時間: 2015-8-27 09:31
2. zram
- config ZRAM
- tristate "Compressed RAM block device support"
- depends on BLOCK && SYSFS && ZSMALLOC
https://wiki.gentoo.org/wiki/Zram#Kernel_configuration
要加
- Processor type and features --->
- <M> Memory allocator for compressed pages
- [*] Use page table mapping to access object in zsmalloc
- [*] Export zsmalloc statistics
要 swap 就去咗 zram 嘅 swap
- fstab
- # RAM disks
- /dev/shm /tmp tmpfs size=8G,nosuid,nodev,relatime 0 0
- cat /etc/conf.d/zram-init
- load_on_start="yes"
- unload_on_stop="yes"
- num_devices="1"
- type0="swap"
- flag0="" # The default "16383" is fine for us
- size0="1024"
- maxs0="4" # maximum number of parallel processes for this device
- algo0="lz4" # lz4 is faster than lzo
