[<<] [<] Page 2 of 3 [>] [>>] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Subject:
Re: [Proposal] PXE Server HOWTO
From: "Michael H. Collins" ####@####.#### Date: 27 Jan 2002 02:38:52 -0000 Message-Id: <3C536838.3020601@linuxlink.com> Mistik1 is going to have a webcam in the LTSP booth so we should all be able to see a bit of it. If you want I will post the url here when it is known. I can't make this one either. Keith Strachan wrote: > Personally, I'd love to attend, but I'm in Australia. Any possibility of > feedback from what is seen by those who manage to go there??? > > -- Michael H. Collins http://www.linuxlink.com Linux Streaming Radio http://www.kpig.com Penguins are so sensitive. Lyle Lovett | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Subject:
Re: [Proposal] PXE Server HOWTO
From: Charles Curley ####@####.#### Date: 27 Jan 2002 04:57:56 -0000 Message-Id: <20020126210855.B23095@trib.com> On Sun, Jan 27, 2002 at 01:20:55AM +0100, Jason Bechtel wrote: > On Sat, 26 Jan 2002 13:52:47 -0700 > Charles Curley ####@####.#### wrote: > > On Sat, Jan 26, 2002 at 07:25:32PM +0100, Jason Bechtel > > wrote: > > > <http://etherboot.sourceforge.net> > > > <http://www.ltsp.org> > > > > Cool! One could use this to boot a full Linux disty, > > which is what the authors intend. > > The authors of PXE? Sorry, no, I meant the LTSP folks. And I was incorrect. They are after the diskless workstation, as you point out below. You could, you know. Boot the kernel, mount everything over NFS, including /home, and let any user log in to any diskless workstation. The user would have a full up Linux disty available at Ethernet speeds. You might have to keep a local RAM disk for some stuff, and having /tmp in local RAM would be possible. You would have no hard drive locally and universal access to one's account. This is much better than NT domains. > > The LTSP project works using PXE+Etherboot (or just > Etherboot) to load a Linux kernel over the network, not a > full distro. The code in the network card's EEPROM (or on a > floppy) contacts a DHCP server (or a bootp server) to obtain > its network information (based on its MAC address). Then > the DHCP/bootp response contains the location of the kernel > to download (tftp server name + path), which is then > downloaded and booted. Believe me, I'm familiar with bootp. :-) The bootp server provides an executable; it does not have to be a kernel. It could be a second stage bootstrap, manufacturing test code, manufacturing OS installation code, or anything else you can compile or assemble for the target. > > If PXE was involved at all, it has now served its purpose > and is out of the picture. Now, once you boot this > specially prepared kernel, it again contacts DHCP/bootp for > its network information (at least it used to need to do > this; LTSP 3.0 may avoid this, not sure). I don't think it should avoid it because the bootp server may assign a temporary address/netmask/gateway/hostname, and the downloaded executable may "know" its permanent assignments. > Now the kernel mounts its root filesystem over NFS (see the NFS-Root > mini-HOWTO, recently reclaimed) and continues to boot, according to > data stored on the NFS server... Finally, init is executed as the > first process and again according to the inittab file on the server, > it either starts a telnet session in console mode or it launches X > and establishes a XDMCP connection to the applications server. In other words, once bootp has delivered its executable it's a normal Unix boot process - assuming it was a Unix kernel bootp delivered. > > Sorry for the speech, but I think that LTSP really is > amazing. The implications for TCO and ongoing maintenance > costs are staggering. Microsoft should be quaking in their > boots! Quite right. -- -- C^2 The world's most effective anti-virus software: Linux. Looking for fine software and/or web pages? http://w3.trib.com/~ccurley --> --> |
<type 'exceptions.IOError'> | Python 2.5.2: /usr/bin/python Tue Jun 18 13:11:46 2024 |
A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
/opt/ezmlm-browse-0.20/<string> in |
/opt/ezmlm-browse-0.20/main.py in main() |
424 |
425 if path is not None: |
426 main_path(path) |
427 else: |
428 main_form() |
global main_form = <function main_form at 0x83b0c6c> |
/opt/ezmlm-browse-0.20/main.py in main_form() |
378 except ImportError: |
379 die(ctxt, "Invalid command") |
380 module.do(ctxt) |
381 |
382 def main(): |
module = <module 'commands.showthread' from '/opt/ezmlm-browse-0.20/commands/showthread.pyc'>, module.do = <function do at 0x83ce294>, global ctxt = {'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'} |
/opt/ezmlm-browse-0.20/commands/showthread.py in do(ctxt={'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}) |
9 ctxt.update(ezmlm.thread(ctxt[THREADID])) |
10 header(ctxt, 'Thread: ' + ctxt[SUBJECT], 'showthread') |
11 do_list(ctxt, 'msgs', ctxt[MSGSPERPAGE], ctxt[MESSAGES], |
12 lambda:sub_showmsg(ctxt, ctxt[MSGNUM])) |
13 footer(ctxt) |
global sub_showmsg = <function sub_showmsg at 0x83b01ec>, ctxt = {'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, global MSGNUM = 'msgnum' |
/opt/ezmlm-browse-0.20/globalfns.py in do_list(ctxt={'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, name='msgs', perpage=10, values=[{'author': u'Michael H. Collins', 'authorid': 'hmjengapgenidcpideii', 'date': '27 Jan 2002 02:38:52 -0000', 'month': 200201, 'msgnum': 2195, 'subject': u'Re: [Proposal] PXE Server HOWTO', 'threadid': 'hjidhfcmaanogoghefno', 'timestamp': 1012099132.0}, {'author': u'Charles Curley', 'authorid': 'blnflnoieggjgfeejfli', 'date': '27 Jan 2002 04:57:56 -0000', 'month': 200201, 'msgnum': 2196, 'subject': u'Re: [Proposal] PXE Server HOWTO', 'threadid': 'hjidhfcmaanogoghefno', 'timestamp': 1012107476.0}, {'author': u'Michael H. Collins', 'authorid': 'hmjengapgenidcpideii', 'date': '27 Jan 2002 16:43:48 -0000', 'month': 200201, 'msgnum': 2199, 'subject': u'Re: [Proposal] PXE Server HOWTO', 'threadid': 'hjidhfcmaanogoghefno', 'timestamp': 1012149828.0}, {'author': u'Nicolas Chauvat', 'authorid': 'nibfaikpkkpacdojonbm', 'date': '28 Jan 2002 13:44:06 -0000', 'month': 200201, 'msgnum': 2211, 'subject': u'Re: [Proposal] PXE Server HOWTO', 'threadid': 'hjidhfcmaanogoghefno', 'timestamp': 1012225446.0}, {'author': u'Jason Bechtel', 'authorid': 'endcpoemckhgogefncka', 'date': '28 Jan 2002 15:45:57 -0000', 'month': 200201, 'msgnum': 2212, 'subject': u'Re: [Proposal] PXE Server HOWTO', 'threadid': 'hjidhfcmaanogoghefno', 'timestamp': 1012232757.0}, {'author': u'Nicolas Chauvat', 'authorid': 'nibfaikpkkpacdojonbm', 'date': '28 Jan 2002 15:57:04 -0000', 'month': 200201, 'msgnum': 2213, 'subject': u'Re: [Proposal] PXE Server HOWTO', 'threadid': 'hjidhfcmaanogoghefno', 'timestamp': 1012233424.0}, {'author': u'Jason Bechtel', 'authorid': 'endcpoemckhgogefncka', 'date': '28 Jan 2002 16:24:33 -0000', 'month': 200201, 'msgnum': 2214, 'subject': u'Re: [Proposal] PXE Server HOWTO', 'threadid': 'hjidhfcmaanogoghefno', 'timestamp': 1012235073.0}, {'author': u'Cicero Mota', 'authorid': 'dkhlajcpamkiidcohnba', 'date': '28 Jan 2002 17:06:25 -0000', 'month': 200201, 'msgnum': 2215, 'subject': u'Re: [Proposal] PXE Server HOWTO', 'threadid': 'hjidhfcmaanogoghefno', 'timestamp': 1012237585.0}, {'author': u'prl-linuxdoc-discuss.sychron.com', 'authorid': 'jmfmdagooohmhcmcmfkm', 'date': '28 Jan 2002 18:10:52 -0000', 'month': 200201, 'msgnum': 2216, 'subject': u'Re: [Proposal] PXE Server HOWTO', 'threadid': 'hjidhfcmaanogoghefno', 'timestamp': 1012241452.0}, {'author': u'Peter Lister', 'authorid': 'nfdjdehdkhdllmibelll', 'date': '28 Jan 2002 18:17:40 -0000', 'month': 200201, 'msgnum': 2217, 'subject': u'Re: [Proposal] PXE Server HOWTO', 'threadid': 'hjidhfcmaanogoghefno', 'timestamp': 1012241860.0}], peritem=<function <lambda> at 0x83ce48c>) |
128 write(template % ctxt) |
129 if peritem: |
130 peritem() |
131 ctxt[ROW] += 1 |
132 |
peritem = <function <lambda> at 0x83ce48c> |
/opt/ezmlm-browse-0.20/commands/showthread.py in |
9 ctxt.update(ezmlm.thread(ctxt[THREADID])) |
10 header(ctxt, 'Thread: ' + ctxt[SUBJECT], 'showthread') |
11 do_list(ctxt, 'msgs', ctxt[MSGSPERPAGE], ctxt[MESSAGES], |
12 lambda:sub_showmsg(ctxt, ctxt[MSGNUM])) |
13 footer(ctxt) |
global sub_showmsg = <function sub_showmsg at 0x83b01ec>, ctxt = {'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, global MSGNUM = 'msgnum' |
/opt/ezmlm-browse-0.20/globalfns.py in sub_showmsg(ctxt={'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, msgnum=2196) |
229 format_timestamp(ctxt, ctxt) |
230 write(html('msg-header') % ctxt) |
231 rec_showpart(ctxt, msg, 0) |
232 write(html('msg-footer') % ctxt) |
233 ctxt.pop() |
global rec_showpart = <function rec_showpart at 0x83b01b4>, ctxt = {'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, msg = <email.message.Message instance at 0x842b36c> |
/opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x842b36c>, partnum=1) |
205 else: |
206 for p in part.get_payload(): |
207 partnum = rec_showpart(ctxt, p, partnum+1) |
208 else: |
209 write(html('msg-sep') % ctxt) |
partnum = 1, global rec_showpart = <function rec_showpart at 0x83b01b4>, ctxt = {'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, p = <email.message.Message instance at 0x842b6ec> |
/opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x842b6ec>, partnum=2) |
208 else: |
209 write(html('msg-sep') % ctxt) |
210 sub_showpart(ctxt, part) |
211 return partnum |
212 |
global sub_showpart = <function sub_showpart at 0x83b0144>, ctxt = {'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part = <email.message.Message instance at 0x842b6ec> |
/opt/ezmlm-browse-0.20/globalfns.py in sub_showpart(ctxt={'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE...HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate'}, part=<email.message.Message instance at 0x842b6ec>) |
164 type = ctxt[TYPE] = part.get_content_type() |
165 ctxt[FILENAME] = part.get_filename() |
166 template = html('msg-' + type.replace('/', '-')) |
167 if not template: |
168 template = html('msg-' + type[:type.find('/')]) |
global template = <function template at 0x83a8e9c>, global html = <function html at 0x83a8ed4>, type = 'application/pgp-signature', type.replace = <built-in method replace of str object at 0x842aa68> |
/opt/ezmlm-browse-0.20/globalfns.py in html(name='msg-application-pgp-signature') |
40 |
41 def html(name): |
42 return template(name + '.html') |
43 |
44 def xml(name): |
global template = <function template at 0x83a8e9c>, name = 'msg-application-pgp-signature' |
/opt/ezmlm-browse-0.20/globalfns.py in template(filename='msg-application-pgp-signature.html') |
31 except IOError: |
32 if not _template_zipfile: |
33 _template_zipfile = zipfile.ZipFile(sys.argv[0]) |
34 try: |
35 f = _template_zipfile.open(n).read() |
global _template_zipfile = None, global zipfile = <module 'zipfile' from '/usr/lib/python2.5/zipfile.pyc'>, zipfile.ZipFile = <class zipfile.ZipFile at 0x8341a7c>, global sys = <module 'sys' (built-in)>, sys.argv = ['-c', '/opt/ezmlm-browse-0.20'] |
/usr/lib/python2.5/zipfile.py in __init__(self=<zipfile.ZipFile instance at 0x842b76c>, file='-c', mode='r', compression=0, allowZip64=False) |
337 self.filename = file |
338 modeDict = {'r' : 'rb', 'w': 'wb', 'a' : 'r+b'} |
339 self.fp = open(file, modeDict[mode]) |
340 else: |
341 self._filePassed = 1 |
self = <zipfile.ZipFile instance at 0x842b76c>, self.fp = None, builtin open = <built-in function open>, file = '-c', modeDict = {'a': 'r+b', 'r': 'rb', 'w': 'wb'}, mode = 'r' |
<type 'exceptions.IOError'>: [Errno 2] No such file or directory: '-c'
args =
(2, 'No such file or directory')
errno =
2
filename =
'-c'
message =
''
strerror =
'No such file or directory'