<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>UI 網站 &#187; btrfs</title>
	<atom:link href="http://ui.idv.tw/wordpress/?feed=rss2&#038;tag=btrfs" rel="self" type="application/rss+xml" />
	<link>https://ui.idv.tw/wordpress</link>
	<description>個人雜亂筆記用</description>
	<lastBuildDate>Wed, 15 Oct 2025 10:08:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>synology btrfs 刪除</title>
		<link>https://ui.idv.tw/wordpress/?p=1506</link>
		<comments>https://ui.idv.tw/wordpress/?p=1506#comments</comments>
		<pubDate>Wed, 03 Jul 2024 05:40:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[synology]]></category>
		<category><![CDATA[btrfs]]></category>

		<guid isPermaLink="false">http://ui.idv.tw/wordpress/?p=1506</guid>
		<description><![CDATA[一兩天前，我在此 Reddit 子版區塊中詢問如何從快照和 Hyper Backup 檔案中刪除單一檔案。我被告知這在設計上是不可能的。 Hyper Backup 檔案似乎確實無法手動修改，但經過進一步研究，我發現確實可以（甚至相當簡單）使用命令列使用 btfrs 快照來完成此操作。 使用 Synology 的 Snapshots Replication 套件拍攝快照只是 btrfs 檔案系統內建功能的一個非常簡單的介面。您無法從中刪除檔案的唯一原因是 Synology 決定將其快照設為唯讀。以下是如何改變這一點。 一次一張快照 假設您已使用 Synology Snapshot Replicator 建立GMT-xxx在共用資料夾中呼叫的快照MYSHARE。 以管理員身分透過 SSH 連線到您的 NAS，然後輸入sudo -i並提供您的管理員密碼以成為 root。 透過將 btrfs 唯讀屬性設為 false 使快照可讀寫，如下所示： btrfs property &#8230; <a href="https://ui.idv.tw/wordpress/?p=1506">繼續閱讀 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>一兩天前，我在此 Reddit 子版區塊中詢問如何從快照和 Hyper Backup 檔案中刪除單一檔案。我被告知這在設計上是不可能的。 Hyper Backup 檔案似乎確實無法手動修改，但經過進一步研究，我發現確實可以（甚至相當簡單）使用命令列使用 btfrs 快照來完成此操作。</p>
<p>使用 Synology 的 Snapshots Replication 套件拍攝快照只是 btrfs 檔案系統內建功能的一個非常簡單的介面。您無法從中刪除檔案的唯一原因是 Synology 決定將其快照設為唯讀。以下是如何改變這一點。</p>
<p>一次一張快照<br />
假設您已使用 Synology Snapshot Replicator 建立GMT-xxx在共用資料夾中呼叫的快照MYSHARE。</p>
<p>以管理員身分透過 SSH 連線到您的 NAS，然後輸入sudo -i並提供您的管理員密碼以成為 root。</p>
<p>透過將 btrfs 唯讀屬性設為 false 使快照可讀寫，如下所示：<br />
btrfs property set /volume1/\@sharesnap/MYSHARE/GMT-xxx ro false<br />
是的，這是正確的路徑。如果您轉到 MYSHARE/#snapshot/GMT-xxx， 它將不起作用。</p>
<p>現在，您可以鍵入內容cd /volume1/\@sharesnap/MYSHARE/GMT-xxx以轉到快照，然後像在 Linux 中一樣導航並刪除檔案（使用例如cd和rm）。再次強調，不要造訪 MYSHARE/#snapshot。</p>
<p>完成後，將快照設定回唯讀：<br />
btrfs property set /volume1/\@sharesnap/MYSHARE/GMT-xxx ro true</p>
<p>重要提示：要真正從磁碟中刪除檔案並釋放空間，必須從主資料夾中刪除它們並從所有快照中刪除它們。因此，對包含要刪除的檔案的所有快照重複步驟 2-4。</p>
<p>一次所有快照<br />
如果您有數十個快照和多個文件，這可能會很痛苦，因此以下是如何同時執行相同的操作。特別小心！ 輸入錯誤的內容可能會嚴重弄亂您的快照，甚至可能弄亂整個 NAS。</p>
<p>sudo -i如上。</p>
<p>for d in /volume1/\@sharesnap/MYSHARE/GMT*; do btrfs property set "$d" ro false; done</p>
<p>找到您要刪除的檔案。兩個建議：<br />
find /volume1/\@sharesnap/MYSHARE/ -name &#8216;filename-of-huge-file*&#8217; 如果您知道檔案名稱或<br />
find /volume1/\@sharesnap/MYSHARE/ -size +5G 尋找所有大於 5 GB 的檔案。</p>
<p>當您確定上面的 find 命令產生正確的結果時，請再次運行它們並添加-delete到行末尾以實際刪除檔案。在該行的末尾 &#8211; 否則你可以破壞一切！</p>
<p>for d in /volume1/\@sharesnap/MYSHARE/GMT*; do btrfs property set "$d" ro true; done</p>
<p>其他有用的命令<br />
列出所有快照： btrfs subvolume list -st /volume1/</p>
<p>刪除快照： btrfs subvolume delete GMT-xxx</p>
<p>檢查快照是否為唯讀：（ btrfs property get /volume1/\@sharesnap/MYSHARE/GMT-xxx<br />
“ro true”表示唯讀，“ro false”表示讀寫）。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
运行如下命令删除子卷</p>
<p>sudo btrfs subvolume delete &#8211;subvolid 263 /mnt/olddata<br />
Delete subvolume (no-commit): &#8216;/mnt/olddata/@/home&#8217;<br />
可以看到是no-commit，因为这时还没提交，具体什么时候提交，不太清楚，可以重启系统让其生效。也可以增加-c参数直接提交。</p>
<p>sudo btrfs subvolume delete -c &#8211;subvolid 263 /mnt/olddata</p>
]]></content:encoded>
			<wfw:commentRss>https://ui.idv.tw/wordpress/?feed=rss2&#038;p=1506</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
