help_filenames.htm 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html><head>
  3. <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  4. <title></title>
  5. </head><body>
  6. <h1>Puppy filenames</h1>
  7. <br>
  8. The main Puppy files are:<br>
  9. <br>
  10. <span style="font-style: italic;">vmlinuz, initrd.gz, puppy.sfs, zdrv.sfs</span><br>
  11. <br>
  12. However, traditionally, versioning is put into the last two, for example:<br>
  13. <br>
  14. <span style="font-style: italic;">vmlinuz, initrd.gz, pup_431.sfs, zp431335.sfs</span><br>
  15. <br>
  16. ...those last two names are intended to be unique for that build of Puppy, so they can be found at bootup.<br>
  17. <br>
  18. <h2>id-string</h2>
  19. The files vmlinuz and the two .sfs files shown above now have a 16-byte id-string appended to the files. <br>
  20. <br>
  21. The first list is simplified names, with no versioning in the
  22. filenames, however, the 'init' boot script can read the id-string and
  23. uniquely identify the files.<br>
  24. <br>
  25. Having the id-string appended to vmlinuz is important for the 'init'
  26. boot script as it enables to find the boot partition (and path).<br>
  27. <br>
  28. For the simplified .sfs names, again the id-string enables the correct files to be found.<br>
  29. <br>
  30. For the traditional names, the id-string is used to find vmlinuz and
  31. hence the boot partition (and path), however the .sfs files are found in the
  32. traditional way, by their filenames. In other words, the appended
  33. id-string is not required, and need not be there.<br>
  34. <br>
  35. <h2>Compatibility</h2>
  36. There are may be some 3rd-party scripts that expect the traditional
  37. naming of the .sfs files, for example a CD-remaster program. So, for
  38. maximum compatibility, choose the traditional names.<br>
  39. <br>
  40. It may also be argued that it is easier for the user to recognise the .sfs files if the filenames show versioned information.<br>
  41. <br>
  42. There is one compatibility issue with the 'puppy.sfs' file. Some builds
  43. of Puppy, from Puppy 4.3.1 up to Lucid 5.1, name this file as
  44. 'pup-431.sfs' or 'lucid-510.sfs', however, the very latest Woof build
  45. system has returned to an underscore instead of a hyphen for the
  46. traditional name, so for example a recent build of Wary Puppy has
  47. 'wary_090.sfs'<br>
  48. <br>
  49. Note, the reason for changing the '-' back to '_' is the original msdos f.s. canot handle '-' in filenames.<br>
  50. <br>
  51. <h2>Simplified filenames</h2>
  52. The main advantage of using the simplified names is the aesthetics of simple naming!<br>
  53. <br>
  54. In practice, I don't think there is any problem with the files getting
  55. mixed up with the wrong ones. Normally, a frugal installation places
  56. files into a sub-directory whose name identifies what build of Puppy it
  57. is. Booting off CD, at first shutdown when it is offered to copy .sfs
  58. files off the CD to HD, they are now copied into a sub-directory.<br>
  59. <br>
  60. Something to think about... Neither vmlinuz nor initrd.gz have
  61. versioning information in the filenames, yet they are specific to that
  62. build of Puppy. So, in what way is it any more difficult or
  63. inconvenient for the .sfs files to be named in the same non-versioned
  64. way? <br>
  65. <br>
  66. The simplified names are currently there for experimental builds, to
  67. get some hands-on whether we like them. They are expected to be in Quirky 1.3.<br>
  68. <br>
  69. <h2>DISTRO_SPECS file</h2>
  70. The Woof '3builddistro' script (or checkbox in the 'woof_gui' GUI) enables to choose simplified or traditional filenames.<br>
  71. <br>
  72. Whichever is chosen, the names are stored in the built Puppy, in /etc/DISTRO_SPECS. For example:<br>
  73. <br>
  74. <span style="font-style: italic;">DISTRO_IDSTRING='w091100916185403'</span><br style="font-style: italic;"><span style="font-style: italic;">
  75. DISTRO_PUPPYSFS='wary_091.sfs'</span><br style="font-style: italic;"><span style="font-style: italic;">
  76. DISTRO_ZDRVSFS='zw091335.sfs'</span><br>
  77. <br>
  78. So, any script that wants to know what the names are can read these variables.<br>
  79. <br>
  80. Woof 3builddistro also copies DISTRO_SPECS into the initrd.gz, so that the 'init' script can see what files to search for.<br>
  81. <br>
  82. However, in a running Puppy, you can find out the filenames in the way
  83. that scripts have done before, by reading 'PUPSFS' and 'ZDRV' variables
  84. in /etc/rc.d/PUPSTATE.<br>
  85. <br>
  86. In fact, to clarify the difference between these two sets of variables, I have put this comment into /etc/DISTRO_SPECS:<br>
  87. <br>
  88. <span style="font-style: italic;">#Note, the .sfs files below are what the 'init' script in initrd.gz searches for,</span><br style="font-style: italic;">
  89. <span style="font-style: italic;">#for the partition, path and actual files loaded, see PUPSFS and ZDRV in /etc/rc.d/PUPSTATE</span><br>
  90. <br>
  91. <h2>Postscript</h2>
  92. The bottom line is that if you build Puppy with the traditional names,
  93. then effectively everything is as before. The only thing really that
  94. developers and users have to be aware of (perhaps) is the reversion
  95. from '-' to '_'.<br>
  96. <br>
  97. Under the hood though, the 'init' script is more efficient at finding
  98. the Puppy files, based on the id-string appended to 'vmlinuz'.<br>
  99. <br>
  100. On the otherhand, if you build with the new names, everything should
  101. still "just work", but some 3rd-party scripts may need to be updated.<br>
  102. <br>
  103. Regards,<br>
  104. Barry Kauler<br>
  105. Sept. 2010<br>
  106. <br>
  107. </body></html>