更新

更新

我嘗試重新啟動 18.04 LTS 機器,但它沒有響應,因此等待幾分鐘後我重新啟動機器。

機器啟動正常,但我發現一些最近編輯的檔案現在是空的。這適用於至少 5 個已知案例,包括文字檔案、系統檔案和 .git 資料夾深處的檔案。

  • 該檔案系統是否已嚴重損壞且使用不安全?
  • 我如何知道這是否是硬體問題?
  • 這是重啟 ubuntu 時已知的風險嗎?

其他資訊:

  • 磁碟是三星970 Pro
  • Ubuntu 安裝在 Ext4 分割區上(與 Windows 雙啟動)
  • Disks無法修復啟動磁碟(正忙)需要一個可用的 USB 記憶棒
  • smartctl報告如下:

更新

  • 運行時sudo touch /forcefsck;sudo shutdown -r now沒有明顯檢查磁碟
  • 使用活動磁碟,Disks檢查分割區未損壞
  • fsck -f /dev/nvme0n1p5從活動磁碟運行不會回傳錯誤,退出代碼 = 0
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-5.0.0-36-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       Samsung SSD 970 PRO 1TB
Serial Number:                      S462NF0M616954M
Firmware Version:                   1B2QEXP7
PCI Vendor/Subsystem ID:            0x144d
IEEE OUI Identifier:                0x002538
Total NVM Capacity:                 1,024,209,543,168 [1.02 TB]
Unallocated NVM Capacity:           0
Controller ID:                      4
Number of Namespaces:               1
Namespace 1 Size/Capacity:          1,024,209,543,168 [1.02 TB]
Namespace 1 Utilization:            691,389,394,944 [691 GB]
Namespace 1 Formatted LBA Size:     512
Local Time is:                      Sun Nov 17 01:01:26 2019 GMT
Firmware Updates (0x16):            3 Slots, no Reset required
Optional Admin Commands (0x0037):   Security Format Frmw_DL *Other*
Optional NVM Commands (0x005f):     Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat *Other*
Maximum Data Transfer Size:         512 Pages
Warning  Comp. Temp. Threshold:     81 Celsius
Critical Comp. Temp. Threshold:     81 Celsius

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     6.20W       -        -    0  0  0  0        0       0
 1 +     4.30W       -        -    1  1  1  1        0       0
 2 +     2.10W       -        -    2  2  2  2        0       0
 3 -   0.0400W       -        -    3  3  3  3      210    1200
 4 -   0.0050W       -        -    4  4  4  4     2000    8000

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02, NSID 0x1)
Critical Warning:                   0x00
Temperature:                        36 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    0%
Data Units Read:                    1,662,255 [851 GB]
Data Units Written:                 5,875,310 [3.00 TB]
Host Read Commands:                 20,271,726
Host Write Commands:                90,120,020
Controller Busy Time:               335
Power Cycles:                       95
Power On Hours:                     515
Unsafe Shutdowns:                   4
Media and Data Integrity Errors:    0
Error Information Log Entries:      105
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0
Temperature Sensor 1:               36 Celsius
Temperature Sensor 2:               39 Celsius

Error Information (NVMe Log 0x01, max 64 entries)
No Errors Logged

答案1

原因是 EXT4 檔案系統的「延遲分配」功能。出於效能原因,EXT4 中新增了延遲分配,其中資料不會立即提交到磁碟。這極大地提高了效能,但代價是在電源故障期間未提交檔案的資料很可能完全遺失。有些延遲可能會持續數秒,且電源故障將導致未提交的檔案大小顯示為 0 位元組。我相信這就是你所面臨的。

您需要在 /etc/fstab 條目中仔細選擇檔案系統掛載選項。例如,data=journal該選項允許所有資料在寫入主檔案系統之前提交到日誌中,並停用延遲分配功能。

您可以閱讀有關 EXT4 標誌的基本詳細信息這裡和所有選項這裡。關於這些選項有一個很好的討論這個線程也.

相關內容