掛載 Synology 分享的 NFS 後無法使用 Gnome nautilus 無法寫入檔案

最近遇到一個奇怪的問題,我在 Fedora 的環境下 Mount Synology 分享出來的 NFS 空間時,發現 Gnome nautilus 檔案總管無法寫入或變更檔案就像沒有寫入權限一般。但若是使用 Shell 指令操作時,卻又一切正常。百思不得其解,在 google 了許多論壇後,似乎有類似問題的人不多。但有在 gnome nautils 的論壇中看到一篇兩年前的舊文提到了類似的問題,透過 gio info 掛載目錄 的指令查詢了我掛載起來的目錄,發現其中的 access::can-write:屬性居然是 FALSE,但明明權限已經都正確設定了 read/write 了。這篇討論的後段有網友提到可以透過把權限 set to Windows ACL 的方式來解決,但我在爬文中看到 Synology 的官方 Knowledge Center 中的 如何將檔案或資料夾的權限從 UNIX 權限還原為 Windows ACL 權限? 提到這麼一段話。

在 DSM 中,檔案 / 資料夾的預設權限為 Windows ACL 權限。若在檔案或資料夾上執行 chmod 指令 (例如:chmod 644 FILE),權限會變更為 UNIX 權限,此操作可能會導致日後無法預期的行為。本文將說明如何還原權限變更。

其中提出的解決方法是

您可以依照下列步驟以將 UNIX 權限還原為 Windows ACL 權限:
1. 開啟 File Station,找到您執行 chmod 指令的檔案 / 資料夾其上層資料夾。
2. 以右鍵按一下該上層資料夾,選擇內容。
3. 前往權限頁籤,勾選套用到這個資料夾、子資料夾及檔案並按一下確定。
4. Windows ACL 權限將會重新套用至檔案或資料夾。

照著官方提供的解決方法來操作後,掛載起來的 NFS 便可以用 Gnome nautilus 正常操作寫入檔案了。至於是什麼時候權限錯了,實在記不起來了,因為真的好久沒用 NFS 掛載空間了。

把解決方法記錄下來,希望能幫到遇上相同問題的朋友。

Joplin Web Clipper 突然無法執行

使用 Joplin 的 Web Clipper 時,突然發現會出現 Permission Needed 還有一行 Starting ,但卻一直沒有動靜,無法正常執行。

很有可能是 Web Clipper 已經進到新版本,但 Joplin 仍還在舊版本的關係。可以將 Joplin 更新到新版本後,將 Browser 關閉重開後,再試一次,應可解決。目前最新的版本是 2.1.8

Chrome for Linux 有些網頁出現 403 無法瀏覽

因為某幾個網站一直出現 403 ,但在無痕模式下又可以正常使用。通常這種情況可能是某個 Chrome plugin 更新了導致異常,而在無痕模式因為 Plugin 預設都是沒有開啟的,所以反而不會造成問題。但檢查的起手式還是從連線開始確認。

從開發者工具的 Copy as cURL 可以取得連線時帶入的參數


根據取得到參數發現一個有趣的事, User-Agent 居然多了一個不該出現的字

'User-Agent: Mozilla/5.0 (X11; Fedora; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'

一般不會有出現 Fedora 這個字串,經過交叉測試後發現,只要拿掉 Fedora; 這個字串,那個不能瀏覽的網頁就恢復正常了。

接下來就是找出是什麼 Plugin 造成了這個多出來的字串。

將我所有安裝的 Plugin 列出來檢視後,跟 Agent 有關的只有兩個。而其中最可疑的就是以下這個 Plugin

先將其關閉後果然一切就正常了。

接下來另一件事就是這個我不知道做什麼用的 Plugin 是什麼時候被裝進來的,我一點印象都沒有。
查看了 Plugin 的官網後,其中提到這個 Plugin 自動安裝的原因可以在 https://bugzilla.redhat.com/show_bug.cgi?id=1266569 得知。

原因是跟著 Package fedora-chromium-config 一起來的,看來是安裝 Chrome 時被套件管理系統一齊帶進來了。但這對一些 User Agent 很敏感的網站來說,會造成困擾。 在此記錄下來,若有發生同樣情況的朋友可以知道如何處理。

OS: Fedora 31
Google Chrome: 88.0.4324.182



從 Evernote 轉到 Joplin 的使用心得記錄

這陣子決定將自己的筆記從 Evente 轉換到 Joplin,順便把轉換的過程和心得記錄下來,方便有相同需求或是在評估 Joplin 的捧油可以有個參考。

現在的筆記軟體或平台很多,依每個人需求的不同都會有較適合的方案,最後我會選擇 Jopline 最主要的原因是

  • 程式碼開源
  • 資料存在自己家
  • Markdown 支援
  • 支援多種雲端儲存的同步方案
  • 跨平台,手機和PC都有(Linux, Windows, Mac/iOS, Android)
  • 有從 Evernote 匯入資料的方案

資料匯出

       記事資料轉換的第一步是將現有的記事資料從 Evernote 中匯出,在匯出之前有件事要先瞭解。 Joplin 在匯入資料時會匯入時的檔名建立一本 Notebook,並將該筆匯入的記事都放在該本 Notebook 中。因此從 Evernote 匯出 enex 格式資料時,建立也是以 Notebook 為單位,一本本的先匯出成檔案,並以 Evernote 中的 Notebook 名稱為檔名。

       這對記事本較多的捧油來說有點不方便,我的記事本數量在一百至二百之間,光是匯出資料就耗費了我不少時間。若是原本在使用 Evernote 時就只是用 Tag 在管理記事,而沒什麼用 Notebook 分類的捧油來說反而是方便不少。因為匯入後的 Tag 都還存在,每筆記事的建立時間和資料來源網址也都有保存著。所以都是利用 Tag 在管理而沒有使用 Notebook 的捧油倒是可以試試將整個 Evernote 的資料匯出成一個檔案後,再匯到 Joplin 中即可。

資料匯入

資料的匯入由 Joplin 上方選單中的 File 中的 Import,有兩個 ENEX 的選項,一個是 as Markdown,一個是 as HTML。


as Markdown 是指匯入後的記事以 Markdown 的格式來儲存,as HTML 則是將匯入後的記事以 HTML 的格式來儲存。以 HTML 格式儲存的優點是顯示的樣式較接近原本在 Evernote 中的樣式,還原度很高。但有個致命的缺點則是難以編輯,因為 HTML 的格式充滿了各種樣式的 TAG,並不如 Markdown 般的簡潔,不利於閱讀。

匯入為 Markdown 的格式筆記看起來相對容易閱讀,但若原本在 Evernote 中充滿著很多從網頁截取下來的文章,一旦轉存為 Markdown 格式很多樣式都出現跑版的情況。例如文字的顏色消失,一些特殊的表格或版面變得零亂或是段落變得和原本不一致。

為了取得一個平衝,我先將原本在 Evernote 中的記事先都以 HTML 的格式匯入到 Joplin 中,以後的筆記則使用 Markdown 來使用,遇到是自己需要編輯的筆記,則將 HTML 顯示出來的記事,用複製貼上的方法,重新再建立一筆 Markdown 的格式或是直接在 Joplin 提供的 Rich Editor 中做小幅度的修改。

資料同步

Joplin 目前支援六種資料同步方案,如下圖:


在這裡我是使用 Dropbox 做測試,點選 Dropbox 的選項後,會出現一組連向 Dropbox 的 URL。點選這組 URL 會連向 Dropbox 並要求授權,點選同意後會得到一組字串,將 Dropbox 提供的認證字串貼回 Joblin 即完成設定,接下來 Joplin 會開始進行資料同步到 Dropbox 中。但不得不說,第一次同步進 Dropbox 時耗費的時間真的很長,或許是因為我的記事量有五千多則。建議睡覺前讓他去同步,比較不會覺得佔用太多時間。同樣的,在另一端要將記事資料從 Dropbox 中同步到地端時所耗費的時間也是超長,手機就更不用說了,只能時不時的開起來同步一下。還好我的編輯主力都是在 PC 上,偶爾需要在手機上記錄而已,所以讓他慢慢同步是不會造成太大困擾。或許記事量若沒有那麼多的話,可能手機上就不用同步那麼久了!!

如果自己有 NAS 的話,也可以嚐試用 WebDAV 或是 File system 的方式進行同步。

網頁資料截取

Joplin 有截取網頁資料使用的 Plugin,讓我們在瀏覽網頁時看到需要存下的文章或圖時,可以很方便的存進 Joplin 中。

要注意的是,要使用 Web Clipper 的功能時,Joplin 需要筅開啟程式中的 Service 功能,截取的資料才能送得進 Joplin 裡。在上方的功能選單中的 Tools 中的 Option

在左側選單中的 Web Clipper 選項中依其說明,將 Step 1 的 clipper service 進行 Enable

目前有 for Chrome 和 for Firefox 兩種版本,可以參照以下提供的連結取得,或是透過 Joplin 的 Web Clipper 說明界面中取得。

在使用上和 Evernote Web Clipper 很接近,如果想把看到的頁面資料整個截取下來,可以透過 Clip simplified page 和 Clip complete page 來完成,差別只在抓下來的格式。Clip Simplified page 會將頁面的格式簡化後儲存,而 Clip complete page 再區分兩個選項,若想很接接看到頁面的格式則可以選擇 Clip complete page(HTML)(Beta) 的選項。至於那一種適合,就看各位捧油自行取捨了。

若只想儲存頁面中的某部份資料,可以先用滑鼠選取後,再使用 Clip selection 的功能進行截取,即可以只收錄我們選擇的部份。至於 Clip screenshot 和 Clip URL 就跟功能名稱一樣,讓我們選擇要收錄頁面中的哪部份截圖和儲存URL。同樣可以在功能選單中選擇要放進哪個 Notebook 和下 Tag,不過就沒有像 Evente Web Clipper 那樣有智慧預判所選擇文章可能的 Notebook 和 Tag,完全要自己選擇哦!

特別要注意的是在使用過程中發現 Clip selection 和 Clip complete page 最大的差別。一般頁面中的圖檔在收進 Joplin 時,若選擇的是 Clip complete page 或是 Clip simpleted page,其圖檔在收進 Joplin 時是保存其原本的連結,圖檔本身並沒有收進 Joplin 中。也就是說如果某天那個網頁消失了,或是原作者的圖床失效了,就會出現沒圖或是破圖的問題。這樣有些資料是在圖中的情況會造成日後閱讀的困擾,這時就需要使用 Clip selection 這個功能,這個功能會把頁面上的圖檔都一併存入 Joplin 中。就不擔心以後圖就不見了。

遇到的問題

  • Joplin 也有記事的版本管理,只是保存的版本的時間並不是每次一有異動就維入版本控管,看了一下官方的記事選錄說明,有兩個條件觸發時記事要自動加入版本控管。
    1. 異動的記事,在超過十分鐘沒有再進行異動時。
      這是針對正在編改的記事,這條件主要觸發是在異動筆記之後
    2. 在過去七天沒有異動過的記事。
      這是針對準備要開始異動時,系統發現這篇記事在過去七天內都沒異動過,當你準備改動時,系統會先把異動前的內容納入歷史記錄中。
      有這兩個條件的判定,並不是每次一異動就會納入歷史資料中,可以有效避免太多不必要的保存佔用空間和系統效能。
  • 首行縮排的問題,這似乎是所有 Markdown 的問題,因為中文有首行縮排的使用習慣,但在 Markdown 的編排中並沒有這個顯示習慣。一般來說,我們會在首行加入兩個全形的空白來處理這個問題,但我發現 Joplin 的排版會忽略全形的空白,所以只能改用第二個方案在需要加入空格地方加入以下字串,可以造出兩個全形空白的效果。
           
    
    使用 Markdown 主要也是讓我們專注在文章的內容中,避免排版佔用的時間,但畢竟 Markdown 仍是以英文為主要對象,因為排版引擎排出來的樣式難免有些不適合於中文中。

缺點

  • 方享記事必須要使用 Joplin NextCloud 服務,不然無法分享記事
    但這對我來說並不會有什麼困擾,我只是用 Joplin 來做筆記,並沒有要進行協作編輯。單純的分享可以透過匯出成 PDF 後再轉給我要分享的對象。

參考資料

掛載 Synology 分享的 NFS 後無法使用 Gnome nautilus 無法寫入檔案

最近遇到一個奇怪的問題,我在 Fedora 的環境下 Mount Synology 分享出來的 NFS 空間時,發現 Gnome nautilus 檔案總管無法寫入或變更檔案就像沒有寫入權限一般。但若是使用 Shell 指令操作時,卻又一切正常。百思不得其解,在 google 了...