<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>20292</bug_id>
          
          <creation_ts>2009-06-03 14:50:43 +0400</creation_ts>
          <short_desc>Не корректно создаёт /etc/lilo.conf</short_desc>
          <delta_ts>2009-06-05 17:09:14 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>alterator-lilo</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>distro-blocker</keywords>
          <priority>P3</priority>
          <bug_severity>critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>19564</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andriy Stepanov (stanv)">stanv</reporter>
          <assigned_to name="Anton V. Boyarshinov">boyarsh</assigned_to>
          <cc>boyarsh</cc>
    
    <cc>cas</cc>
    
    <cc>rom_as</cc>
    
    <cc>vsu</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>92380</commentid>
    <comment_count>0</comment_count>
    <who name="Andriy Stepanov (stanv)">stanv</who>
    <bug_when>2009-06-03 14:50:43 +0400</bug_when>
    <thetext>Не возможно загрузить установленную систему.

alterator-lilo-1.6-alt2


При первом старте установленной системы:


[    0.952557] Executing init=/init
Loading, please wait...
[    0.960327] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input1
Begin: Starting udevd ...
Done.
Begin: Loading essential drivers ...
[    2.688223] SCSI subsystem initialized
[    2.862541] Driver &apos;sd&apos; needs updating - please use bus_type methods
[    3.138105] scsi0 : ata_piix
[    3.138937] scsi1 : ata_piix
[    3.139708] ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xc000 irq 14
[    3.140006] ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xc008 irq 15
[    3.296684] ata1.00: ATA-7: QEMU HARDDISK, 0.10.0, max UDMA/100
[    3.298035] ata1.00: 14680064 sectors, multi 16: LBA48 
[    3.300373] ata1.00: configured for MWDMA2
[    3.301987] scsi 0:0:0:0: Direct-Access     ATA      QEMU HARDDISK    0.10 PQ: 0 ANSI: 5
[    3.304194] sd 0:0:0:0: [sda] 14680064 512-byte hardware sectors: (7.51 GB/7.00 GiB)
[    3.306056] sd 0:0:0:0: [sda] Write Protect is off
[    3.307169] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn&apos;t support DPO or FUA
[    3.308142] sd 0:0:0:0: [sda] 14680064 512-byte hardware sectors: (7.51 GB/7.00 GiB)
[    3.309933] sd 0:0:0:0: [sda] Write Protect is off
[    3.310999] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn&apos;t support DPO or FUA
[    3.312007]  sda: sda1 sda2 sda4 &lt; sda5 &gt;
[    3.318590] sd 0:0:0:0: [sda] Attached SCSI disk
[    3.476679] ata2.00: ATAPI: QEMU DVD-ROM, 0.10.0, max UDMA/100
[    3.478540] ata2.00: configured for MWDMA2
[    3.480542] scsi 1:0:0:0: CD-ROM            QEMU     QEMU DVD-ROM     0.10 PQ: 0 ANSI: 5
Done.
Begin: Finishing udevd initialization ...
Done.
Begin: Mounting root file system ...
/init: 176: cannot open /dev/root: No such device or address
Usage: modprobe [-v] [-V] [-C config-file] [-n] [-i] [-q] [-b] [-o &lt;modname&gt;] [ --dump-modversions ] &lt;modname&gt; [parameters...]
modprobe -r [-n] [-i] [-v] &lt;modulename&gt; ...
modprobe -l -t &lt;dirname&gt; [ -a &lt;modulename&gt; ...]
Usage: mount [-r] [-w] [-o options] [-t type] [-f] [-i] [-n] device directory
Unable to mount /dev/root as . Dropping to a shell!
(initramfs)


&lt;vsu&gt; cat /proc/cmdline там посмотри
&lt;stanv&gt; cat /proc/cmdline
BOOT_IMAGE=ALTLinuxS ro root=302 console=ttyS0

&lt;vsu&gt; откуда root=302 берётся? lilo поганое?
&lt;vsu&gt; и запись root=/dev/disk/by-uuid/... тоже не работает
&lt;vsu&gt; а вот by-path уже не попользуешься
&lt;vsu&gt; как и by-id

в созданном /etc/lilo.conf содержатся как раз строки:

boot=&quot;/dev/disk/by-id/ata-QEMU_HARDDISK_QM00001&quot;
        root=&quot;/dev/disk/by-uuid/84eca964-2fd1-4bdd-93d3-c52dcc4532a6&quot;

С /etc/fstab кажись все впорядке:
proc            /proc                   proc    nosuid,noexec,gid=proc          0 0
devpts          /dev/pts                devpts  nosuid,noexec,gid=tty,mode=620  0 0
tmpfs           /tmp                    tmpfs   nosuid                          0 0
UUID=84eca964-2fd1-4bdd-93d3-c52dcc4532a6       /       ext3    defaults        1       1
UUID=732d8b98-ba6d-447b-bfe6-1074e3a1012b       /home   ext3    nosuid  1       2
UUID=23e2f0b8-f810-40ee-9ee9-0aaafd6417e4       swap    swap    defaults        0       0

&lt;vsu&gt; работает root=&quot;UUID=84eca964-2fd1-4bdd-93d3-c52dcc4532a6&quot;

т.е. необходимо поправить генерацию lilo.conf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92384</commentid>
    <comment_count>1</comment_count>
    <who name="Sergey Vlasov">vsu</who>
    <bug_when>2009-06-03 14:58:09 +0400</bug_when>
    <thetext>Причина проблемы в том, что lilo при установке загрузчика преобразует любую форму записи параметра root, кроме root=&quot;UUID=...&quot; и root=&quot;LABEL=...&quot;, в номер устройства, используемый в загруженной в этот момент системе. В результате при последующей загрузке до скриптов в initramfs доходит лишь что-то типа root=302, и загрузка проходит только в случае, если номера устройств в новой и старой системе совпадают (и устройство определяется без задержек - ожидание появления устройства в этом случае тоже не работает).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92385</commentid>
    <comment_count>2</comment_count>
    <who name="Vladislav Zavjalov">slazav</who>
    <bug_when>2009-06-03 14:59:37 +0400</bug_when>
    <thetext>В /proc/mounts появился некий /dev/root. alterator-lilo оказался не готов к
такому сюрпризу. Кто виноват - непонятно... В любом случае
можно брать root device из fstab...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92391</commentid>
    <comment_count>3</comment_count>
    <who name="Andriy Stepanov (stanv)">stanv</who>
    <bug_when>2009-06-03 15:10:38 +0400</bug_when>
    <thetext>Может поможет сгенеренный lilo.conf.

root=&quot;/dev/disk/by-uuid/84eca964-2fd1-4bdd-93d3-c52dcc4532a6&quot; что соответствует /dev/hda2. Т.е. запись логически правильная.

Упоминаний о /dev/root в lilo.conf нету.

Как /dev/root (что является образом squashfs) вносит сбой в работу alterator-lilo ?

cat /etc/lilo.conf
map=&quot;/boot/map&quot;
lba32
prompt
compact
vga=&quot;0x314&quot;
boot=&quot;/dev/disk/by-id/ata-QEMU_HARDDISK_QM00001&quot;
timeout=&quot;100&quot;
install=&quot;menu&quot;
message=&quot;/boot/splash/message&quot;
append=&quot;panic=30 splash=silent&quot;
default=&quot;ALTLinux&quot;

image=&quot;/boot/vmlinuz&quot;
        label=&quot;ALTLinux&quot;
        initrd=&quot;/boot/initrd.img&quot;
        root=&quot;/dev/disk/by-uuid/84eca964-2fd1-4bdd-93d3-c52dcc4532a6&quot;
        read-only

image=&quot;/boot/vmlinuz&quot;
        label=&quot;failsafe&quot;
        initrd=&quot;/boot/initrd.img&quot;
        root=&quot;/dev/disk/by-uuid/84eca964-2fd1-4bdd-93d3-c52dcc4532a6&quot;
        addappend=&quot;failsafe&quot;
        vga=&quot;normal&quot;
        read-only</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92394</commentid>
    <comment_count>4</comment_count>
    <who name="Vladislav Zavjalov">slazav</who>
    <bug_when>2009-06-03 15:19:21 +0400</bug_when>
    <thetext>(В ответ на комментарий №3)
&gt; Может поможет сгенеренный lilo.conf.
&gt; 
&gt; root=&quot;/dev/disk/by-uuid/84eca964-2fd1-4bdd-93d3-c52dcc4532a6&quot; что соответствует
&gt; /dev/hda2. Т.е. запись логически правильная.

Значит тут дело не в alterator-lilo, а где-то глубже...

&gt; Как /dev/root (что является образом squashfs) вносит сбой в работу
&gt; alterator-lilo ?

Ну вот у меня в системе почему-то в /proc/mounts сплошной несуществующий /dev/root и никаких реальных устройств. Соответственно, alterator-lilo не ставит загрузчик в раздел. И cas@ на этом сейчас налетел...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92403</commentid>
    <comment_count>5</comment_count>
    <who name="Sergey Vlasov">vsu</who>
    <bug_when>2009-06-03 15:41:47 +0400</bug_when>
    <thetext>Поведение текущей версии initramfs в зависимости от вида параметра root=..., полученного ядром при загрузке:

 1) root=UUID=${uuid} - преобразуется в /dev/disk/by-uuid/${uuid}, и в таком виде попадает в /proc/mounts.

 2) root=LABEL=${label} - в текущей версии в этом случае в /proc/mounts будет /dev/root (а не /dev/disk/by-label/${escaped_label} - просто сунуть ${label} в имя нельзя, поскольку варианты вида LABEL=/ тоже должны работать).

 3) root=/dev/${path} (имя файла в любом виде) - в /proc/mounts будет имя устройства в том виде, как оно было записано в параметре root=...; при использовании lilo этот вариант получить не удастся, поскольку любое явно указанное имя файла устройства будет переведено в номер.

 4) root=${hex_number} (результат саботажа со стороны lilo) и прочие форматы записи номера устройства - в /proc/mounts будет /dev/root, ожидание появления устройства не работает.

При формировании lilo.conf следует отлавливать имена устройств, записанные в виде /dev/disk/by-uuid/${uuid}, и заменять их на UUID=${uuid}.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92430</commentid>
    <comment_count>6</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2009-06-03 19:53:41 +0400</bug_when>
    <thetext>alterator-lilo-1.8-alt1 -&gt; sisyphus:

* Wed Jun 03 2009 Vladislav Zavjalov &lt;slazav@altlinux&gt; 1.8-alt1

- lilo-disk.sh: use /etc/fstab instead of /proc/mounts for
  finding device mountpoints
- lilo-conf.sh: use &quot;UUID=...&quot; instead of &quot;/dev/disk/by-uuid/...&quot;
  for root parameter (closes: #20292)
- avoid more error messages</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92535</commentid>
    <comment_count>7</comment_count>
    <who name="Vladislav Zavjalov">slazav</who>
    <bug_when>2009-06-05 12:45:31 +0400</bug_when>
    <thetext>А в чем проблема с LABEL?

Казалось бы, надо все странные символы преобразовать так же, как это делает  udev, создавая свои симлинки. Или тут никакой принципиальной трудности нет, а просто пока не сделано?</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>