Re: [問題] 刪除全部照片 Sony A7II

作者: hayden0828 (黑燈俠)   2016-03-13 05:52:04
其實在於操作格式化的過程,對於記憶卡壽命的估計其實是有理可循,
先從硬碟及Nand Flash(快閃記憶體,記憶卡內的儲存元件)說起
我們知道硬碟儲存資料是靠磁頭讀寫臂在磁碟表面上飛快的穿梭並留下磁痕來紀錄資料
這就好比我們在吃喜酒時,中間旋轉圓桌就像磁盤,我們的筷子就像磁頭,想吃哪道菜就
轉阿轉阿轉到我們面前就夾。
而磁痕在紀錄上的特色,就是可以以磁區(Sector,約512位元組)為單位進行存取,感覺
上硬碟就像是很大的黑板,用粉筆寫下新的資料,如果在同樣位置要加上新的資料,只要
拿板擦把原來資料擦除,就可以再把新資料寫在上面。
快閃記憶體則完全不相同,快閃記憶體是透過將電荷鎖在電晶體的絕緣夾層來記憶資料。
一個快閃記憶體單元是由許多的塊(Block)構成,而塊又分成許多的頁(Page),頁才分成
許多的磁區。而快閃記憶體有一個非常GY的限制,就是在寫入時必須以"頁"為單位,而
刪除時又必須以整個"塊"為單位。
所以快閃記憶體就好比排滿一本本裝訂好無法拆頁的書的書架,而你想寫字上去但手上拿
的不是筆,而是活字版...必須將所有要寫的資料排成一整頁,再把資料一次"蓋"在其中
一頁上。而要刪除怎麼辦?抱歉這是用墨水印上去的,除非把整本訂好的書丟了,再拿一本
來印。可是你可能會想說,阿奇怪我在拍照的時候想刪就刪,想拍就拍,哪有這麼多毛?
沒錯,為了讓電腦及相機在操作Flash時能像硬碟一樣直覺,記憶卡的另外一個元件~記憶
卡控制器,會提供FTL(快閃記憶體轉換層)的功能。透過大量的演算法,讓Flash假裝自己
是顆硬碟一樣以磁區為基本單元來做操作。用上面的比喻就像另外做了一些索引的書、放
了一些書籤來查找資料所在的書目及頁面,所以我要刪除資料時,只要去修改索引指向的
書目,等到那本書上的資料全都不要時再將書丟棄即可。但是假裝的終究還是沒有辦法突
破,有一些規則還是要注意:1.不管寫入多少資料,若長度小於一個頁,仍需要佔一個頁
的空間。2.在連續的寫入上透過FTL演算法是可以忽略製作索引的。
快閃記憶體最大的優點就是在查找資料時,能夠非常快速的做反應。相對於硬碟物理的移
動懸臂,是完全不同等級的(在書架上抽一本書下來看,並翻到指定的頁面vs在攤開所有
資料的廣大黑板花一段時間跑到想找的資料前)。所以最近越來越多人喜歡用SSD來當系統
碟或在上面灌數位暗房軟體來修圖就是這個原因。但是快閃記憶體不是沒有缺點,最為人
所詬病的,就是有壽命限制,一般市面上流行、成熟的顆粒每個塊大約有5000~8000次的
寫入/刪除壽命,這是不是在說如果我格式化5000次後卡就會爆掉?不是,我們剛提到的
記憶卡控制器會將所有的塊寫入做一個最佳化,讓所有塊平均寫入以達到最大的使用壽命
。如果真的有塊壞掉了,記憶卡控制器也有辦法將其上面的資料重建至其他塊,之後會避
開操作那個塊直到系統最低需要的總塊數為止才會掛。所以網路上有人一知半解的說用久
了會變唯讀、用久了容量會變小都是不可信之謠言。一張16GB的記憶卡透過記憶卡控制器
的規劃,若平均壽命8000次則至少有128TB的寫入總資料量的壽命。所以不用擔心,在用壞
之前,你就會想換更大、更高容量的記憶卡了。
再來聊聊檔案系統,在剛剛介紹的實體記憶空間上系統會規劃磁區以方便儲存管理檔案,
一般記憶卡最普遍的檔案系統是FAT32及EXFAT(在格式化的時候通常會看到這些選項),這
些檔案系統會將數個磁區綁成一個簇(Cluster,預設32個磁區),在檔案系統的前方會有
一個檔案表,紀錄所有的簇分配的情況,舉例來說;記憶卡中目前有兩張照片,相片X放
在簇A、簇B、簇C...;相片Y放在簇D、簇E、簇F...。透過這個檔案表,電腦就可以將磁
區與檔案做一個關連。FAT32對於每個簇,需要花四個BYTE(32bit)來做紀錄。
如果我按下刪除相片X,那會發生什麼事呢?首先A7ii會先找到相片X的起始簇A,簇A會紀
錄檔名及基本檔案資訊,對記憶卡下指令蓋上一個刪除標誌(只佔一個位元組),這時就完
成刪除了,A7ii只操作了一個位元組檔案就不見了。你或許會想說,不對呀檔案還是在那
裡阿,沒錯,下次A7ii或電腦讀到刪除標誌時就會忽略這個檔案了。這也就是為什麼許多
相片救援軟體可以把被刪除的照片救回來的原因。阿你又會想,那這樣刪除只動一個位元
,那有什麼傷卡的?不要忘了我們在FTL上所有的操作都是以頁為單位...
最後回到主題,一張存滿照片的記憶卡(以16G記憶卡A7ii一張RAW檔25MB,約600張相片)
一張一張刪除,會更動600次檔案表,寫入600次頁資料(實際上還有FTL工作時要寫入的索
引資料,總共約是1200次,我們先暫且不計)假設記憶體一個塊有256個頁,這樣就必須抹
除三個塊了。而格式化只需初始化檔案表,約 16G(總容量,單位Byte) / 16K(每個簇有32
個磁區,一個磁區有512Byte,所以一個簇是16KB) * 4(每個簇花4Byte紀錄) = 4MB的檔案
表,由於是連續的,主流的記憶體頁容量大概是32KB,所以會寫入128個頁資料(實際上檔
案表有備份,還要加上開機磁區跟磁碟標籤的簇及FTL索引資料,但同樣由於是連續的,
最多只會再多129個),所以只會抹除一個塊,這樣一張一張的刪除和格式化比起來,優勝
劣敗應該見真章了。
雖然說差兩三個塊好像差不多,但是好的使用習慣就是這樣培養起來的。遵循下列原則,
一張記憶卡只有一唯一用途(相機用的歸相機,手機歸手機)、拍完照插電腦把檔案複製出
來後,再插回相機格式化。有好習慣照片自然不容易消失。
(說完這篇這麼長,感覺這樣說起來記憶卡不容易嗝屁阿,為什麼還是容易掛(我沒有刻意
指某牌),這要牽扯到記憶體顆粒的體質及廠商的良心(和自己的人品),待以後有機會再分
享吧)
作者: rainywind23 (何必呢?)   2016-03-13 07:40:00
謝謝學長的教誨!
作者: linpo1206 (東區徐志摩)   2016-03-13 07:45:00
好文推推
作者: chrislin0919 (CHRL)   2016-03-13 08:21:00
推好文
作者: downredrain (redrain)   2016-03-13 08:40:00
太專業了~已跪~~~
作者: jack28001400 (Jakusillas)   2016-03-13 08:43:00
好文必須推
作者: Laviathan   2016-03-13 09:25:00
這要m起來
作者: rextem (熱血熊寶貝)   2016-03-13 09:29:00
字好多..所以結論是 格式化比檔案逐一刪除好嗎?
作者: littlewhite (小白)   2016-03-13 09:36:00
推好文
作者: Rogozov (哥發的不是冗是寂寞)   2016-03-13 09:55:00
推,後來都會乖乖格式化
作者: Aza (㊣阿炸)   2016-03-13 10:22:00
好文推!!!
作者: NewTypeNeo (北大三國哥)   2016-03-13 10:28:00
專業!
作者: rjhowmanyo (RJ)   2016-03-13 10:59:00
你格式化系?
作者: SuperPenguin (企鵝會飛)   2016-03-13 11:30:00
專業推
作者: godchildtw (神童)   2016-03-13 11:43:00
重點在最後一段
作者: friskies (借過)   2016-03-13 12:07:00
u質文章
作者: angel5566 (56天使)   2016-03-13 12:24:00
長知識了,推!
作者: qq750717 (SeanWang)   2016-03-13 12:30:00
推專業
作者: joe3477 (joe1234)   2016-03-13 13:02:00
flash 推
作者: danisaku (對不起我又自私了)   2016-03-13 13:19:00
真是專業
作者: Dryduckboy (我的名字叫做Do)   2016-03-13 13:51:00
優良好文
作者: james1986 (不要再叫我好人了.....)   2016-03-13 14:06:00
用久了 真的會唯讀啊.. 當年拿一張sd來當vista的readyb用久了 真的會唯讀啊.. 當年拿一張sd來當vista的readyboost 就是這樣死的..
作者: flash0576 (跟鹹魚沒有分別)   2016-03-13 14:08:00
你記憶卡系?
作者: chadhsieh (謝老闆)   2016-03-13 15:43:00
作者: wu1990 (小滷泡芙forever)   2016-03-13 16:49:00
請問如果把記憶卡容量塞滿再一起格式化會比較好嗎?謝謝QAQ
作者: s155083 (Enzo)   2016-03-13 17:57:00
黑燈神
作者: billlushana1 (藍腹鷴火箭炮)   2016-03-13 18:08:00
推A7黑燈哥!
作者: canandmap (地圖上的流浪者)   2016-03-13 18:48:00
為什麼有種走錯板的錯覺...?
作者: kryolanfans (理查)   2016-03-13 18:57:00
專業推XD
作者: jjchen425   2016-03-13 19:28:00
推專業
作者: ds1441 (wildfire)   2016-03-13 21:38:00
我比較想問終身保固的記憶卡用到卡外殼硬化壞了還保固嗎
作者: kiffy (kk)   2016-03-13 22:15:00
推一個!
作者: festa (諒)   2016-03-14 00:27:00
好文推!!
作者: ligacul (真假仙)   2016-03-14 02:11:00
格式化系好哭~~這篇太專業了
作者: vutsix (香腸)   2016-03-14 10:54:00
塞滿卡對wearleveling跟gc不會造成影響嗎?
作者: mkym (小銘4ni)   2016-03-14 11:35:00
專業給推!
作者: dragon629 (死亡邱比特)   2016-03-14 21:39:00
專業推~
作者: s8704112003   2016-03-18 23:31:00
超專業解說! 大推

Links booklink

Contact Us: admin [ a t ] ucptt.com