[elbe-devel] [PATCH v2 2/2] hdimg: Find loop device instead of providing it

Olivier Dion dion at linutronix.de
Sat Apr 4 02:00:07 CEST 2020


On Thu, 02 Apr 2020, Torben Hohn <torben.hohn at linutronix.de> wrote:
> On Thu, Mar 26, 2020 at 03:54:57PM -0400, Olivier Dion wrote:
>> Since we might not be able to acquire /dev/loop0, we let losetup
>> find a free device for us and use it.
>> 
>> Signed-off-by: Olivier Dion <dion at linutronix.de>
>
> Reviewed-by: Torben Hohn <torben.hohn at linutronix.de>
>
>
> But note, that this is not complete.
> the grubinstaller logic still uses hardcoded /dev/loop0 
> and /dev/poop0 (this is just code to avoid special treatment for
> /dev/loop* in the grub installer scripts.

I was not sure about that part.  I really don't get what's the point of
the poop device.  Why not working with the /dev/loop* directly?  You
mentioned 'special treatment'.  What do you mean?

Anyhow, v3 is on its way with dynamics loop*/poop*.

>
> so for the grubinstallers you need a way to create /dev/poop10 is
> losetup returns /dev/loop10 
>
> and also make these things dynamic.
>
>> ---
>>  elbepack/hdimg.py | 15 ++++++++-------
>>  1 file changed, 8 insertions(+), 7 deletions(-)
>> 
>> diff --git a/elbepack/hdimg.py b/elbepack/hdimg.py
>> index 22522821..a9d2666c 100644
>> --- a/elbepack/hdimg.py
>> +++ b/elbepack/hdimg.py
>> @@ -331,20 +331,21 @@ def create_label(disk, part, ppart, fslabel, target, grub):
>>  
>>      grub.add_fs_entry(entry)
>>  
>> -    entry.losetup("loop0")
>> -    do('mkfs.%s %s %s /dev/loop0' %
>> +    loopdev = entry.losetup()
>> +    do('mkfs.%s %s %s %s' %
>>         (entry.fstype,
>>          entry.mkfsopt,
>> -        entry.get_label_opt()))
>> +        entry.get_label_opt(),
>> +        loopdev))
>>  
>> -    do('mount /dev/loop0 %s' % os.path.join(target, "imagemnt"))
>> +    do('mount %s %s' % (loopdev, os.path.join(target, "imagemnt")))
>>      do('cp -a "%s/." "%s/"' %
>>         (os.path.join(target, "filesystems", entry.id),
>>          os.path.join(target, "imagemnt")),
>>         allow_fail=True)
>> -    entry.tuning("/dev/loop0")
>> -    do('umount /dev/loop0')
>> -    do('losetup -d /dev/loop0')
>> +    entry.tuning(loopdev)
>> +    do('umount %s' % loopdev)
>> +    do('losetup -d %s' % loopdev)
>>  
>>      return ppart
>>  
>> -- 
>> 2.26.0
>> 
>> 
>> _______________________________________________
>> elbe-devel mailing list
>> elbe-devel at linutronix.de
>> https://lists.linutronix.de/mailman/listinfo/elbe-devel
>
> -- 
> Torben Hohn
> Linutronix GmbH | Bahnhofstrasse 3 | D-88690 Uhldingen-Mühlhofen
> Phone: +49 7556 25 999 18; Fax.: +49 7556 25 999 99
>
> Hinweise zum Datenschutz finden Sie hier (Informations on data privacy 
> can be found here): https://linutronix.de/kontakt/Datenschutz.php
>
> Linutronix GmbH | Firmensitz (Registered Office): Uhldingen-Mühlhofen | 
> Registergericht (Registration Court): Amtsgericht Freiburg i.Br., HRB700 
> 806 | Geschäftsführer (Managing Directors): Heinz Egger, Thomas Gleixner
-- 
Olivier Dion
Linutronix GmbH | Bahnhofstrasse 3 | D-88690 Uhldingen-Mühlhofen



More information about the elbe-devel mailing list