[pve-devel] [PATCH kernel-meta] fix #2403: exclude initrd entries from /proc/cmdline

Fabian Grünbichler f.gruenbichler at proxmox.com
Tue Oct 15 16:06:57 CEST 2019


On October 15, 2019 3:54 pm, Thomas Lamprecht wrote:
> On 10/15/19 3:22 PM, Oguz Bektas wrote:
>> if we fallback to /proc/cmdline, it can include the booted initrd.
>> 
>> to avoid loader entries with (sometimes even multiple) initrd lines,
>> we have to parse them out.
>> 
>> Signed-off-by: Oguz Bektas <o.bektas at proxmox.com>
>> ---
>>  efiboot/zz-pve-efiboot | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>> 
>> diff --git a/efiboot/zz-pve-efiboot b/efiboot/zz-pve-efiboot
>> index 4756555..5a84af2 100755
>> --- a/efiboot/zz-pve-efiboot
>> +++ b/efiboot/zz-pve-efiboot
>> @@ -50,7 +50,8 @@ update_esps() {
>>  		CMDLINE="$(cat /etc/kernel/cmdline)"
>>  	else
>>  		warn "No /etc/kernel/cmdline found - falling back to /proc/cmdline"
>> -		CMDLINE="$(cat /proc/cmdline)"
>> +		# remove initrd entries
>> +		CMDLINE="$(cat /proc/cmdline | awk '{gsub(/initrd=([0-9a-zA-Z\\.-])*\s/,x)}1')"
> 
> could pontentially match a field which ends with initrd, e.g.,
> noinitrd=foo
> 
> while just an example that still should be caught..
> 
> also, this is a wrong use of cat, you could just do:
> "$(awk '...' /proc/cmdline)"
> 
> not point for the pipe..
> 
> now if the initrd= is _always_ the first one we could also do:
> "$(cut -d ' ' -f2- /proc/cmdline)"

there's potentially multiple initrd stanzas, and they can appear 
wherever in the cmdline..

> 
> but no hard feelings.
> 
>>  	fi
>>  
>>  	loop_esp_list update_esp_func
>> 
> 
> 
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
> 
> 




More information about the pve-devel mailing list