Re: [PATCH v1] partitions/efi: Add 'gpt_sector' kernel cmdline parameter

From: Dmitry Osipenko
Date: Mon Feb 24 2020 - 13:22:42 EST


24.02.2020 20:23, Dmitry Osipenko ÐÐÑÐÑ:
> 24.02.2020 19:33, Karel Zak ÐÐÑÐÑ:
>> On Wed, Feb 19, 2020 at 09:59:54AM -0700, Stephen Warren wrote:
>>> On 2/19/20 9:27 AM, Christoph Hellwig wrote:
>>>> On Wed, Feb 19, 2020 at 07:23:39PM +0300, Dmitry Osipenko wrote:
>>>>> The gpt_sector=<sector> causes the GPT partition search to look at the
>>>>> specified sector for a valid GPT header if the GPT is not found at the
>>>>> beginning or the end of block device.
>>>>>
>>>>> In particular this is needed for NVIDIA Tegra consumer-grade Android
>>>>> devices in order to make them usable with the upstream kernel because
>>>>> these devices use a proprietary / closed-source partition table format
>>>>> for the EMMC and it's impossible to change the partition's format. Luckily
>>>>> there is a GPT table in addition to the proprietary table, which is placed
>>>>> in uncommon location of the EMMC storage and bootloader passes the
>>>>> location to kernel using "gpt gpt_sector=<sector>" cmdline parameters.
>>>>>
>>>>> This patch is based on the original work done by Colin Cross for the
>>>>> downstream Android kernel.
>>>>
>>>> I don't think a magic command line is the way to go. The best would be
>>>> to reverse-engineer the proprietary partition table format. If that is
>>>> too hard we can at least key off the odd GPT location based of it's
>>>> magic number.
>>
>> +1
>>
>>> I thought that the backup GPT was always present in the standard location;
>>
>> If they have proprietary stuff on begin of the device and valid backup
>> GPT at the end of the device then designer of this junk is crazy, because
>> many GPT fdisk-like tools will try to recover from the backup header and
>> overwrite the unknown (invalid) stuff at the begin of the device...
>
> It's a problem created by vendor, but these devices are assumed to run
> Android-only. So it's not really that bad :)
>

Is there any way to mark parts of block device as read-only? Such that
userspace couldn't write to the RO-marked sectors, I guess that could
help to save someone's bacon.