Linux 内核如何决定块设备是否获得默认设置的只读标志?

Linux 内核如何决定块设备是否获得默认设置的只读标志?

我有一个 USB 记忆棒(大约 2 个月)不断以只读方式安装。经过一番研究和测试后,我发现块设备设备本身 ( /dev/sdc) 和分区之一 ( /dev/sdcX) 始终具有只读标志(cat /sys/block/sdc/rocat /sys/block/sdcX/ro为 1)。

我不是在谈论安装选项!我必须手动将标志设置为 0,以便hdparm -r0 /dev/sdcX能够将分区挂载为读写分区,并在每次插入 USB 记忆棒和重新启动后对其进行写入(是的,写入有效)。 USB 记忆棒没有只读硬件开关。我已经格式化了分区,重新创建了分区表,甚至dd if=/dev/zero of=/dev/sdc确保旧的分区表被完全销毁,但没有任何改变。

笔记:然而,其他设备默认情况下没有设置此只读标志。

那么Linux内核如何决定是否默认为块设备设置只读标志呢?我怎样才能从早期启动开始永久改变这种行为? (我实际上是从这个 USB 记忆棒启动我的 Raspberry Pi,但在我的具有不同内核的笔记本电脑上,只读行为是相同的......)?

相关内容