[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: late_command not late enough?



Hello Phil,

>> However, baseinstaller will copy
>> the installer's /e/n/i file into the install environment, so I
>> preemptively copy the newly downloaded interfaces file over the
>> installer's /e/n/i file. Thus overwriting the installer's /e/n/i file
>> before it overwrites mine.
>>
>> Yes, this is ass-backwards.
>
> Why don't you just do that bit then (i.e. overwrite the installer's
> /e/n/i and let the installer do the rest), or is the busybox curl in d-i
> not capable of TFTP, or some such?

As far as I can tell, there is no curl available from within the
installer's environment. wget is installed, but it doesn't support
tftp. The tftp command is available, but it only supports interactive
mode. This is why I've been jumping through these hoops in
late_command.

> You _might_ want to check out preseed_fetch as well, depending on how
> you're getting hold of your preseed file (preseed_fetch gets other files
> From the same place, which means you can write scripts that are agnostic
> about where the preseed came from -- at least that's the theory.  I've
> never tried it with TFTP)

You are my hero. I was not familiar with preseed_fetch. Now that I've
spent some time playing with this, this is /exactly/ what I need.
Thank you!

Now I'm simply doing the following:

d-i preseed/early_command string \
 preseed_fetch tftp://10.0.0.254/89_later_than_late_command
/usr/lib/finish-install.d/89_later_than_late_command ; \
 chmod 755 /usr/lib/finish-install.d/89_later_than_late_command ;

This is so much cleaner.

Your suspicions were right about whether preseed_fetch would behave
correctly when fetching files from the root directory over tftp. I did
not find this to be the case (even when adding the /./ hint to the the
preseed.cfg url directive). I ended up having to specify
tftp://10.0.0.254/.

Also, I would like to say (again) that the documentation for
late_command is misleading. It is stated in many places (including the
example wheezy preseed.cfg file) that late_command is run *just*
before the install finishes but while /target is still mounted
(implying that is runs right before unmounting). This leaves out
important information (partman, netcfg, baseinstall, et al) and forces
preseeders to dig into d-i internals just to figure out why their
late_command scripts aren't working as expected.

I'm curious if there's a technical reason why late_command is run so
early in finish-install.d. Otherwise, I recommend moving it to run
later in the finish-install.d list.

Thanks again Phil. Your suggestions were a big help.

---Alex


Reply to: