Debian

為什麼只讀文件系統的SHA512雜湊會改變?

  • March 2, 2021

我按照指南將 Raspberry Pi 引導為只讀文件系統。

$ cat /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait fastboot noswap ro

$ cat /etc/fstab
proc                  /proc     proc    defaults             0     0
PARTUUID=fb0d460e-01  /boot     vfat    defaults,ro          0     2
PARTUUID=fb0d460e-02  /         ext4    defaults,noatime,ro  0     1
tmpfs                 /tmp      tmpfs   nosuid,nodev         0     0
tmpfs                 /var/log  tmpfs   nosuid,nodev         0     0
tmpfs                 /var/tmp  tmpfs   nosuid,nodev         0     0

當我計算其 SD 卡的 SHA512 雜湊值時,重新啟動後雜湊值會發生變化……為什麼?

$ diskutil list
/dev/disk0 (internal, physical):
  #:                       TYPE NAME                    SIZE       IDENTIFIER
  0:      GUID_partition_scheme                        *500.3 GB   disk0
  1:                        EFI EFI                     209.7 MB   disk0s1
  2:                 Apple_APFS Container disk1         500.1 GB   disk0s2

/dev/disk1 (synthesized):
  #:                       TYPE NAME                    SIZE       IDENTIFIER
  0:      APFS Container Scheme -                      +500.1 GB   disk1
                                Physical Store disk0s2
  1:                APFS Volume Macintosh HD - Data     340.9 GB   disk1s1
  2:                APFS Volume Preboot                 85.9 MB    disk1s2
  3:                APFS Volume Recovery                529.0 MB   disk1s3
  4:                APFS Volume VM                      3.2 GB     disk1s4
  5:                APFS Volume Macintosh HD            11.3 GB    disk1s5

/dev/disk2 (internal, physical):
  #:                       TYPE NAME                    SIZE       IDENTIFIER
  0:     FDisk_partition_scheme                        *15.9 GB    disk2
  1:             Windows_FAT_32 boot                    268.4 MB   disk2s1
  2:                      Linux                         15.7 GB    disk2s2

$ sudo openssl dgst -sha512 /dev/rdisk2
...

這是預期的行為,並記錄在手冊中。在終端類型man 8 mount

-r,–只讀

以只讀方式掛載文件系統。同義詞是-o ro。請注意,根據文件系統類型、狀態和核心行為,系統可能仍會寫入設備。例如,如果文件系統髒了,Ext3 或 ext4 將重放它的日誌。為了防止這種寫訪問,您可能需要使用“ro,noload”掛載選項掛載 ext3 或 ext4 文件系統,或者將塊設備設置為只讀模式,請參見命令blockdev(8)

因此,您很可能正在安裝 ext4(或類似的)並且它正在做出預期的更改。

引用自:https://unix.stackexchange.com/questions/637257