2020年2月22日 星期六

lightroom 自動套色

## 這個功能疑似 lightroom 9.0 以上才開始有, 我只確定 8.3.1 沒有.. #
lightroom 對每一款相機有它自己的參數, 雖然無法 100% 還原的跟原廠一樣就是.
首先在照片 import 進來之前, 先改這個設定:
edit -> perfermances -> presets -> master -> camera setting
中文版我沒看叫什麼, 設定的位置應該一模一樣才對. 如果已經 import 進來, 那在 develop 頁面 reset 給它按下去時, 它就會照這裡的設定試圖讀回相機的設定做套色. 如果真的太多圖要按 reset, 那我建議要改的相簿重做 import 比較快.
.
但是沒有鏡頭參數自動校正, 這個建議再多做個設定集做全域設定, 有的鏡頭會因為透過轉接環的關係遺失鏡頭資訊 (ex. 天工 tze-01....), 要自己手動抓回來.
.
然而在我自己的使用場合來說, z6 還原的最接近機身直出顏色, 其它機種多少有點差異..


2020年2月11日 星期二

zfs boot with ubuntu 20.04 and UEFI

這是這篇的延續, 也是從一套已經安裝好的 ubuntu 移植去別的硬碟這種模式, 不過這次是全部重來. 以下參考這篇 "Booting a ZFS Root via UEFI on Debian", zpool 建立手法也會幾乎跟它完全一樣. oting a ZFS Root via UEFI on Debian, 首先的需要安裝幾個東西:

  • zfsutils-linux
  • zfs-initramfs
假設原始的系統檔案裝在 /dev/nvme0n1p2
我打算安裝的目標是 /dev/sda2, /dev/sda1 為 UEFI boot, 我打算安裝後 zpool 們的樣子:
rpool
rpool/sys : /
rpool/plug : /opt/plug/

#mkfs.vfat /dev/sda1

# zpool create -o ashift=12 -o altroot=/mnt -m none rpool /dev/sda2
# zfs set compression=lz4 rpool
# zfs create -o mountpoint=/opt/plug rpool/plug
# zfs set compression=lz4 rpool/plug
# zfs create -o mountpoint=/ rpool/sys
# zfs set atime=off rpool/sys
# zfs set relatime=on rpool/sys
# zfs set compression=lz4 rpool/sys
#### 這時因為 rpool 在 zpool create (或 import) 時有下 -o altroot=/mnt 的關係, 所有根基目錄都是在 altroot 的指示之上, 所以 mountpoint 可以放心的設定為 '/'
# zfs create -o mountpoint=/opt/plug rpool/plug
# zfs mount rpool/sys 
#### 這時 df -h 會看到 rpool/sys mount 在 /mnt 下.
#### copy 全部的檔案.
# mkdir -o /tmp/src 
# mount /dev/nvme0n1p2 /tmp/src/
# cp -a /tmp/src/* /mnt/
# mount /dev/sda1 /mnt/boot/efi/
#### 安裝 grub
# grub-install --removable --recheck --force --bootloader-id=BOOT --compress=xz --target=x86_64-efi --boot-directory=/mnt/boot/ --efi-directory=/mnt//boot/efi/ --modules="part_gpt ext2 zfs"
#### 這時有一個動作非常重要, 看 grub 抓到的 zfs uuid 是什麼
# cat /mnt/boot/efi/EFI/BOOT/grub.cfg
## search.fs_uuid xxxx0000oooo1111 root hd0,gpt2
#### 要看這紅字寫的是什麼, 後面改 grub.cfg 會用到
# cat /mnt/boot/grub.cfg|grep vmlinuz|head -1
## linux   /boot/vmlinuz-5.3.0-24-generic root=UUID=00112233-4455-6677-8899-aabbccddeeff ro
#### 這裡要手動改 grub.cfg 比較囉唆, 以下是個人手段, 參考用
# sed -i 's/00112233-4455-6677-8899-aabbccddeeff/xxxx0000oooo1111/g' /mnt/boot/grub.cfg
# nano /mnt/boot/grub.cfg
#### 這裡把 vmlinuz 裡那行 root=UUID=.... 改成 root=ZFS=rpool/sys, 一個 kernel 就要改兩次, 以此類推. 還有所有的 /boot/ 這裡改成 /sys@/boot/ 否則 grub 抓不到開機用的 kernel / initramfs.
#### 
# nano /mnt/etc/fstab
#### 把原本 ext4 mount 的部份還有 swap 全 remark 掉, /boot/efi 改成 /dev/sda1 的 UUID.

後面要維護時記得 zpool 多下一個 altroot 參數, ex:
zpool import rpool -o altroot=/mnt
#### /mnt 必需要是空的

到這裡差不多完工. 過往的做法不好管制某一個 zpool readonly yes/no 還有其它屬性, 這種的比較方便. 還有就是對 UEFI 的支援. /boot/efi/EFI/BOOT/grub.cfg 裡寫的那個 UUID 我用 blkid 還是什麼工具都查不到, 雖然就像過往 btrfs / ext4 查的到 UUID 把檔案直接 co 到 UEFI partition 區裡就可以動那麼簡單, 但就是 zfs 這個 UUID 很奇特, 要透過 grub-installer 抓出來...

這次 lz4 壓縮率不比 btrfs zstd:3 來的高了, 但執行速度目前感覺上還是小贏 btrfs.

update200224: UEFI boot partition grub.cfg 中要搜尋的 fs_uuid 為 16 進位, 但 linux blkid 下看到的 zfs UUID 其實是 10 進位, 照這樣轉換去就可以簡的修改 UEFI boot 區內 grub.cfg 的內容讓 grub 可以抓到指定的 zfs partitiom, 不需要跑 grub-install

2020年2月10日 星期一

vmware host modules

在 linux 上安裝 workstation / player 時會常因為 kernel 沒事做不向下相容的更新, 導致 kernel module 編不出來的問題. 要解決這個問題前, 首先先要確認自己用的 workstation / player 的版本(12 以前的不支援). 再確認已經有安裝編譯套件與 kernel header (ubuntu 就是 build-essential), 還有 git. 來這裡找你的版本:
https://github.com/mkubecek/vmware-host-modules
例如有問題的是 workstation 12.5.9, 就要來這裡下
git clone https://github.com/mkubecek/vmware-host-modules.git -b workstation-12.5.9
1.player 可以用 workstation 的, 版號一樣.
2.不要偷懶用 -b master 或 -b workstation-12.5.x 這類的 branch, 通常拉回來的都不能編
再來進去 vmware-host-modules 目錄裡 make, make install.

離寫這篇文沒多久前出的 workstation 15.5.1 都已經不能在 kernel 5.4.0 上順利編過, 一定要來這邊找更新過的 kernel module 才行, 有這邊更新過的 code, 已經出很久的 12.5.9 靠它都還可以在 5.4.0 上順利編過繼續使用. 真是感謝 Michal Kubeček.

2020年2月7日 星期五

fstrim failed on btrfs

! 我不確定是不是跟我一開始 mkfs.btrfs 都有下 -M 有關係 !
systemctl status fstrim 會出現這些問題:
systemd[1]: fstrim.service: Main process exited, code=exited, status=64/n/a
systemd[1]: fstrim.service: Failed with result 'exit-code'.
systemd[1]: Failed to start Discard unused blocks.
在支援 TRIM command 上的 SSD 上, 如果單一個 btrfs partition 總容量小於 8GiB (8192MiB) 時就會發生. 某些較早沒有支援 TRIM 的 SSD 沒這問題, 沒有支援 TRIM 的 SD/emmc 也沒這問題.
.
至於影響嘛... 我有碰過只是改個檔案就開不了機的狀況過.