slitaz-dev-tools annotate mirror-tools/slitaz/mirror/floppies/builder/index.php @ rev 94

mirror-tools: new style & 2G+ file support
author Pascal Bellard <pascal.bellard@slitaz.org>
date Mon May 30 13:29:45 2011 +0200 (2011-05-30)
parents 84721689334b
children a49102a73eff
rev   line source
slaxemulator@10 1 <?php
slaxemulator@10 2 if (false) { // no php support on this mirror !
slaxemulator@10 3 ?>
slaxemulator@10 4 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
slaxemulator@10 5 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
slaxemulator@10 6 <html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
slaxemulator@10 7 <head>
slaxemulator@10 8 <title>SliTaz Boot Floppies redirection</title>
slaxemulator@10 9 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
slaxemulator@10 10 <meta name="description" content="slitaz boot floppies builder redirection" />
slaxemulator@10 11 <meta name="robots" content="index, nofollow" />
slaxemulator@10 12 <meta name="author" content="SliTaz Contributors" />
slaxemulator@10 13 <meta http-equiv="Refresh" content="0;url=http://mirror.slitaz.org/floppies/builder/index.php">
slaxemulator@10 14 </head>
slaxemulator@10 15 <?php
slaxemulator@10 16 }
slaxemulator@10 17 ini_set('upload_max_filesize','16M');
slaxemulator@10 18 ini_set('post_max_size','16M');
slaxemulator@10 19 if (isset($_GET['id']) && is_file("/tmp/".$_GET['id']."/fd")) {
slaxemulator@10 20
slaxemulator@10 21 // Download a floppy image
slaxemulator@10 22
slaxemulator@10 23 $size = $_GET['s'];
slaxemulator@10 24 if ($size == 0)
slaxemulator@10 25 $size = filesize("/tmp/".$_GET['id']."/fd");
slaxemulator@10 26 header("Content-Type: application/octet-stream");
slaxemulator@10 27 header("Content-Length: ".$size);
slaxemulator@10 28 header("Content-Disposition: attachment; filename=".
slaxemulator@10 29 sprintf("fd%03d.img",$_GET['n']));
slaxemulator@10 30 $cmd = "cat /tmp/".$_GET['id']."/fd";
slaxemulator@10 31 if ($_GET['s'] != 0) {
slaxemulator@10 32 $cmd .= " /dev/zero | dd count=1 bs=".$_GET['s'];
slaxemulator@10 33 if ($_GET['n'] > 1)
slaxemulator@10 34 $cmd .= " skip=".($_GET['n']-1);
slaxemulator@10 35 }
slaxemulator@10 36 echo `$cmd 2> /dev/null`;
slaxemulator@10 37 exit;
slaxemulator@10 38 }
slaxemulator@10 39 ?>
slaxemulator@10 40 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
slaxemulator@10 41 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
slaxemulator@10 42 <html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
slaxemulator@10 43 <head>
slaxemulator@10 44 <title>SliTaz Boot Floppies</title>
slaxemulator@10 45 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
slaxemulator@10 46 <meta name="description" content="slitaz boot floppies builder" />
slaxemulator@10 47 <meta name="robots" content="index, nofollow" />
slaxemulator@10 48 <meta name="author" content="SliTaz Contributors" />
slaxemulator@10 49 <link rel="shortcut icon" href="../../css/favicon.ico" />
slaxemulator@10 50 <link rel="stylesheet" type="text/css" href="../../css/slitaz.css" />
pascal@94 51 <style type="text/css">
pascal@94 52
slaxemulator@10 53 input[type=text] {
slaxemulator@10 54 width: inherit;
slaxemulator@10 55 }
pascal@94 56
pascal@94 57 #content {
pascal@94 58 margin: 6px 280px 0px 0px;
pascal@94 59 padding: 0px 3% 20px 4%;
pascal@94 60 }
pascal@94 61
pascal@94 62 #nav {
pascal@94 63 right: 4%;
pascal@94 64 }
pascal@94 65
pascal@94 66 #copy {
pascal@94 67 text-align: center;
pascal@94 68 }
pascal@94 69
pascal@94 70 #bottom {
pascal@94 71 text-align: center;
pascal@94 72 }
pascal@94 73
slaxemulator@10 74 </style>
slaxemulator@10 75 </head>
slaxemulator@10 76 <body bgcolor="#ffffff">
slaxemulator@10 77 <!-- Header -->
slaxemulator@10 78 <div id="header">
slaxemulator@10 79 <a name="top"></a>
pascal@94 80 <div id="logo"></div>
pascal@94 81 <div id="network">
pascal@94 82 <a href="http://www.slitaz.org/">
pascal@94 83 <img src="/css/pics/network.png" alt="network.png" /></a>
pascal@94 84 <a href="bootloader" title="Build your floppy sets without Internet">Shell builder</a> |
pascal@94 85 <a href="../../boot/floppy-grub4dos" title="Boot tools">Generic boot floppy</a>
pascal@94 86 </div>
pascal@94 87 <h1><a href="http://www.slitaz.org/">Boot floppies builder</a></h1>
slaxemulator@10 88 </div>
slaxemulator@10 89
slaxemulator@10 90 <!-- Navigation menu -->
slaxemulator@10 91 <div id="nav">
slaxemulator@10 92
slaxemulator@10 93 <?php
slaxemulator@10 94
slaxemulator@10 95 // Cleanup old sessions
slaxemulator@10 96
slaxemulator@10 97 $dir = opendir("/tmp");
slaxemulator@10 98 while (($name = readdir($dir)) !== false) {
slaxemulator@10 99 if (preg_match('/^fdbuild/',$name) == 0) continue;
slaxemulator@10 100 if (filemtime("/tmp/$name") > strtotime("-1 hour")) continue;
slaxemulator@10 101 system("rm -rf /tmp/$name");
slaxemulator@10 102 }
slaxemulator@10 103 closedir($dir);
slaxemulator@10 104
slaxemulator@10 105 function get_long($file, $offset)
slaxemulator@10 106 {
slaxemulator@10 107 $value = 0;
slaxemulator@10 108 if ($fp = fopen($file,"r")) {
slaxemulator@10 109 fseek($fp,$offset,SEEK_SET);
slaxemulator@10 110 for ($i = 0; $i < 32; $i += 8) {
slaxemulator@10 111 $value += ord(fgetc($fp)) << $i;
slaxemulator@10 112 }
slaxemulator@10 113 fclose($fp);
slaxemulator@10 114 }
slaxemulator@10 115 return $value;
slaxemulator@10 116 }
slaxemulator@10 117
slaxemulator@10 118 function error($string, $title="Error")
slaxemulator@10 119 {
slaxemulator@10 120 echo <<<EOT
slaxemulator@10 121 <div class="nav_box">
slaxemulator@10 122 <h4>$title</h4>
slaxemulator@10 123 <p>
slaxemulator@10 124 $string
slaxemulator@10 125 </p>
slaxemulator@10 126 </div>
slaxemulator@10 127 EOT;
slaxemulator@10 128 }
slaxemulator@10 129
slaxemulator@10 130 $size = 0;
slaxemulator@10 131 $initrd_size = 0;
slaxemulator@10 132
slaxemulator@10 133 // Upload kernel
slaxemulator@10 134
slaxemulator@10 135 foreach($_FILES as $data) {
slaxemulator@10 136 $msg="The file ".$_FILES["kernel"]['name']." ";
slaxemulator@10 137 switch ($data["error"]) {
slaxemulator@10 138 case UPLOAD_ERR_INI_SIZE :
slaxemulator@10 139 error($msg."exceeds upload_max_filesize.");
slaxemulator@10 140 break;
slaxemulator@10 141 case UPLOAD_ERR_FORM_SIZE :
slaxemulator@10 142 error($msg."exceeds max_post_size.");
slaxemulator@10 143 break;
slaxemulator@10 144 case UPLOAD_ERR_PARTIAL :
slaxemulator@10 145 error($msg."was only partially uploaded.");
slaxemulator@10 146 break;
slaxemulator@10 147 case UPLOAD_ERR_NO_TMP_DIR :
slaxemulator@10 148 error("Missing a temporary folder.");
slaxemulator@10 149 break;
slaxemulator@10 150 case UPLOAD_ERR_CANT_WRITE :
slaxemulator@10 151 error("Failed to write file to disk.");
slaxemulator@10 152 break;
slaxemulator@10 153 }
slaxemulator@10 154 }
slaxemulator@10 155 if (isset($_FILES["kernel"]['tmp_name']) &&
slaxemulator@10 156 is_uploaded_file($_FILES["kernel"]['tmp_name'])) {
slaxemulator@10 157 $tmp_dir = tempnam('','fdbuild');
slaxemulator@10 158 if (file_exists($tmp_dir)) unlink($tmp_dir);
slaxemulator@10 159 mkdir($tmp_dir);
slaxemulator@10 160 $tmp_dir .= '/';
slaxemulator@10 161 move_uploaded_file($_FILES["kernel"]['tmp_name'],
slaxemulator@10 162 $tmp_dir."kernel");
slaxemulator@10 163 $kernel = $tmp_dir."kernel";
slaxemulator@10 164 $boot_version = get_long($kernel,0x206) & 255;
slaxemulator@10 165 $size = get_long($kernel,0x1F4); // syssize paragraphs
slaxemulator@10 166 if ($boot_version < 4) $size &= 0xFFFF; // 16 bits before 2.4
slaxemulator@10 167 $size = ($size + 0xFFF) & 0xFFFF000; // round up to 64K
slaxemulator@10 168 $size <<= 4; // paragraphs -> bytes
slaxemulator@10 169 if (get_long($kernel,0x202) != 0x53726448 || // 'HdrS' magic
slaxemulator@10 170 (get_long($kernel,0x211) & 1 != 1)) { // bzImage flag
slaxemulator@10 171 error("The file ".$_FILES["kernel"]['name'].
slaxemulator@10 172 " is not a bzImage Linux kernel.");
slaxemulator@10 173 $size = 0;
slaxemulator@10 174 }
slaxemulator@10 175 else if ($boot_version < 2 && $_POST['cmdline']) { // before 2.2
slaxemulator@10 176 unset($_POST['cmdline']);
slaxemulator@10 177 error("This boot loader does not support Linux kernel ".
slaxemulator@10 178 "prior 2.4.0-test3-pre3 command line.",
slaxemulator@10 179 "Warning");
slaxemulator@10 180 }
slaxemulator@10 181 $msg = "The size of the file ".$_FILES["kernel"]['name'];
slaxemulator@10 182 }
slaxemulator@10 183
slaxemulator@10 184 // Upload initrd
slaxemulator@10 185
slaxemulator@10 186 if ($size && isset($_FILES["initrd"]['tmp_name']) &&
slaxemulator@10 187 is_uploaded_file($_FILES["initrd"]['tmp_name'])) {
slaxemulator@10 188 move_uploaded_file($_FILES["initrd"]['tmp_name'],
slaxemulator@10 189 $tmp_dir."initrd");
slaxemulator@10 190 $initrd_size = $_FILES["initrd"]['size'];
slaxemulator@10 191 $size += $initrd_size;
slaxemulator@10 192 $msg = "The total size of the files ".$_FILES["kernel"]['name'].
slaxemulator@10 193 " and ".$_FILES["initrd"]['name'];
slaxemulator@10 194 }
slaxemulator@10 195 if ($initrd_size && isset($_FILES["initrd2"]['tmp_name']) &&
slaxemulator@10 196 is_uploaded_file($_FILES["initrd2"]['tmp_name'])) {
slaxemulator@10 197 move_uploaded_file($_FILES["initrd2"]['tmp_name'],
slaxemulator@10 198 $tmp_dir."initrd2");
slaxemulator@10 199 $initrd2_size = $_FILES["initrd2"]['size'];
slaxemulator@10 200 $size += $initrd2_size;
slaxemulator@10 201 $msg = "The total size of the files ".$_FILES["kernel"]['name'].
slaxemulator@10 202 ", ".$_FILES["initrd"]['name'].
slaxemulator@10 203 " and ".$_FILES["initrd2"]['name'];
slaxemulator@10 204 }
slaxemulator@10 205 if ($size >= 15 * 1024 * 1024) {
slaxemulator@10 206 error($msg." exceeds 15 MB.");
slaxemulator@10 207 $size = 0;
slaxemulator@10 208 }
slaxemulator@10 209 if ($size == 0) {
slaxemulator@10 210 if (isset($tmp_dir))
slaxemulator@10 211 system("rm -f $tmp_dir");
slaxemulator@10 212 }
slaxemulator@10 213 else {
slaxemulator@10 214 $cmd = "./bootloader ".$tmp_dir."kernel --prefix "
slaxemulator@10 215 . $tmp_dir."fd --format 0 --flags ".$_POST['flags']
slaxemulator@10 216 . " --video ".$_POST['video'];
slaxemulator@10 217 if ($_POST['cmdline'])
slaxemulator@10 218 $cmd .= " --cmdline '".$_POST['cmdline']."'";
slaxemulator@10 219 if (file_exists($_POST['rdev']))
slaxemulator@10 220 $cmd .= " --rdev ".$_POST['rdev'];
slaxemulator@10 221 if ($initrd_size)
slaxemulator@10 222 $cmd .= " --initrd ".$tmp_dir."initrd";
slaxemulator@10 223 if ($initrd2_size)
slaxemulator@10 224 $cmd .= " --initrd ".$tmp_dir."initrd2";
slaxemulator@10 225 switch ($_POST['size']) {
slaxemulator@10 226 case 1763328 :
slaxemulator@10 227 case 2015232 :
slaxemulator@10 228 case 3526656 :
slaxemulator@10 229 case 4030464 :
slaxemulator@10 230 $cmd .= " --tracks 82"; break;
slaxemulator@10 231 case 1784832 :
slaxemulator@10 232 $cmd .= " --tracks 83"; break;
slaxemulator@10 233 }
slaxemulator@10 234 shell_exec($cmd);
slaxemulator@10 235 $count = 1;
slaxemulator@10 236 if ($_POST['size'] != 0) {
slaxemulator@10 237 $count += (filesize($tmp_dir."fd") -1) / $_POST['size'];
slaxemulator@10 238 $padding = $_POST['size'] -
slaxemulator@10 239 (filesize($tmp_dir."fd") % $_POST['size']);
slaxemulator@10 240 }
slaxemulator@10 241 }
slaxemulator@10 242 $sizes = array(
slaxemulator@10 243 "368640" => "360 KB", "737280" => "720 KB",
slaxemulator@10 244 "1228800" => "1.20 MB",
slaxemulator@10 245 "1474560" => "1.44 MB", "1638400" => "1.60 MB",
slaxemulator@10 246 "1720320" => "1.68 MB", "1763328" => "1.72 MB",
slaxemulator@10 247 "1784832" => "1.74 MB", "1802240" => "1.76 MB",
slaxemulator@10 248 "1884160" => "1.84 MB", "1966080" => "1.92 MB",
slaxemulator@10 249 "2015232" => "1.96 MB", "2949120" => "2.88 MB",
slaxemulator@10 250 "3440640" => "3.36 MB", "3526656" => "3.44 MB",
slaxemulator@10 251 "3932160" => "3.84 MB", "4030464" => "3.92 MB",
slaxemulator@10 252 "0" => "no limit"
slaxemulator@10 253 );
slaxemulator@10 254
slaxemulator@10 255 function show_size($size)
slaxemulator@10 256 {
slaxemulator@10 257 global $sizes;
slaxemulator@10 258 if ($size != 0) return " ".$sizes[$size];
slaxemulator@10 259 }
slaxemulator@10 260 ?>
slaxemulator@10 261
slaxemulator@10 262 <!-- End navigation menu -->
slaxemulator@10 263 </div>
slaxemulator@10 264
slaxemulator@10 265 <!-- Content top. -->
slaxemulator@10 266 <div id="content_top">
slaxemulator@10 267 <div class="top_left"></div>
slaxemulator@10 268 <div class="top_right"></div>
slaxemulator@10 269 </div>
slaxemulator@10 270
slaxemulator@10 271 <!-- Content -->
slaxemulator@10 272 <div id="content">
slaxemulator@10 273
pascal@94 274 <h2>Floppy image set builder</h2>
slaxemulator@10 275
slaxemulator@10 276 <?php
slaxemulator@10 277 if (!isset($count)) {
slaxemulator@10 278 $max = rtrim(ini_get('upload_max_filesize'),"M");
slaxemulator@10 279 $max_post = rtrim(ini_get('post_max_size'),"M");
slaxemulator@10 280 if ($max_post < $max) $max = $max_post;
slaxemulator@10 281 $msg = "the tiny boot loader can't load more than 15 MB";
slaxemulator@10 282 if ($max < 16)
slaxemulator@10 283 $msg = "the web server can't upload more than $max MB";
slaxemulator@10 284 ?>
slaxemulator@10 285 <form method="post" enctype="multipart/form-data" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
slaxemulator@10 286 <table>
slaxemulator@10 287 <tr>
slaxemulator@10 288 <td>Linux kernel:</td>
slaxemulator@10 289 <td><input type="file" name="kernel" size="25" /> <i>required</i></td>
slaxemulator@10 290 </tr>
slaxemulator@10 291 <tr>
slaxemulator@10 292 <td>Initramfs / Initrd:</td>
slaxemulator@10 293 <td><input type="file" name="initrd" size="25" /> <i>optional</i></td>
slaxemulator@10 294 </tr>
slaxemulator@10 295 <tr>
slaxemulator@10 296 <td>Extra initramfs:</td>
slaxemulator@10 297 <td><input type="file" name="initrd2" size="25" /> <i>optional</i></td>
slaxemulator@10 298 </tr>
slaxemulator@10 299 <tr>
slaxemulator@10 300 <td>Default cmdline:</td>
slaxemulator@10 301 <td><input type="text" name="cmdline" size="36" <?php
slaxemulator@10 302 if (isset($_GET['cmdline'])) echo 'value="'.$_GET['cmdline'].'"';
slaxemulator@10 303 ?>/> <i>optional</i></td>
slaxemulator@10 304 </tr>
slaxemulator@10 305 <tr>
slaxemulator@10 306 <td>Root device:</td>
slaxemulator@10 307 <td><input type="text" name="rdev" size="8" value="<?php
slaxemulator@10 308 if (isset($_GET['rdev'])) echo $_GET['rdev'];
slaxemulator@10 309 else echo "/dev/fd0";
slaxemulator@10 310 ?>" />
slaxemulator@10 311 &nbsp;&nbsp;Root flags: <select name="flags">
slaxemulator@10 312 <option value="1">R/O</option>
slaxemulator@10 313 <option value="0" <?php
slaxemulator@10 314 if (isset($_GET['rdev']) && $_GET['rdev'] == "0")
slaxemulator@10 315 echo ' selected="selected"'
slaxemulator@10 316 ?>>R/W</option>
slaxemulator@10 317 </select>
slaxemulator@10 318 &nbsp;&nbsp;VGA mode: <select name="video">
slaxemulator@10 319 <?php
slaxemulator@10 320 $selected=-1;
slaxemulator@10 321 if (isset($_GET['video'])) $selected = $_GET['video'];
slaxemulator@10 322 $options = array();
slaxemulator@10 323 $options[-3] = "Ask";
slaxemulator@10 324 $options[-2] = "Ext";
slaxemulator@10 325 $options[-1] = "Std";
slaxemulator@10 326 for ($i = 0; $i < 64; $i++) $options[$i] = $i;
slaxemulator@10 327 foreach ($options as $key => $value) {
slaxemulator@10 328 echo '<option value="'.$key.'"';
slaxemulator@10 329 if ($key == $selected || $value == $selected)
slaxemulator@10 330 echo ' selected="selected"';
slaxemulator@10 331 echo '>'.$value."</option>\n";
slaxemulator@10 332 }
slaxemulator@10 333 ?>
slaxemulator@10 334 </select>
slaxemulator@10 335 </td>
slaxemulator@10 336 </tr>
slaxemulator@10 337 <tr>
slaxemulator@10 338 <td>Floppy size:</td>
slaxemulator@10 339 <td><select name="size">
slaxemulator@10 340 <?php
slaxemulator@10 341 foreach ($sizes as $key => $value) {
slaxemulator@10 342 echo " <option value=\"$key\"";
slaxemulator@10 343 if ($key == "1474560") echo " selected='selected'";
slaxemulator@10 344 echo ">$value</option>\n";
slaxemulator@10 345 }
slaxemulator@10 346 ?>
slaxemulator@10 347 </select>
slaxemulator@10 348 <input name="build" value="Build floppy set" type="submit" />
slaxemulator@10 349 </td>
slaxemulator@10 350 </tr>
slaxemulator@10 351 </table>
slaxemulator@10 352 </form>
slaxemulator@10 353 <?php
slaxemulator@10 354 echo <<<EOT
slaxemulator@10 355 <p>
slaxemulator@10 356 Note 1: $msg of files (kernel and initramfs) in memory.
slaxemulator@10 357 </p>
slaxemulator@10 358 <p>
slaxemulator@10 359 Note 2: the extra initramfs may be useful to add your own configuration files.
slaxemulator@10 360 </p>
slaxemulator@10 361 EOT;
slaxemulator@10 362 }
slaxemulator@10 363 else {
slaxemulator@10 364 ?>
pascal@94 365 <h4>Download image<?php if ($count >= 2) echo "s"; ?></h4>
pascal@94 366 <ul>
pascal@94 367 <?php
pascal@94 368 for ($i = 1; $i <= $count; $i++) {
pascal@94 369 echo ' <li><a href="'.$_SERVER["PHP_SELF"].
pascal@94 370 "?id=".basename($tmp_dir)."&amp;n=$i&amp;s=".
pascal@94 371 $_POST["size"].'">'.sprintf("fd%03d.img",$i).
pascal@94 372 show_size($_POST["size"])."</a></li>\n";
pascal@94 373 }
pascal@94 374 echo "</ul>\n".floor($padding/1024)."KB padding.\n";
pascal@94 375 ?>
slaxemulator@10 376
slaxemulator@10 377 <p>
slaxemulator@10 378 You can write floppies with SliTaz <i>bootfloppybox</i>,
slaxemulator@10 379 <a href="http://en.wikipedia.org/wiki/RaWrite">Windows rawrite</a> or simply dd:
slaxemulator@10 380 </p>
slaxemulator@10 381 <pre># dd if=fd001.img of=/dev/fd0
slaxemulator@10 382 </pre>
slaxemulator@10 383
slaxemulator@10 384 <p>
slaxemulator@10 385 Start your computer with <i>fd001.img</i>. It will show the kernel version string and
slaxemulator@10 386 the kernel cmdline line. You can edit the cmdline. Most users can just press Enter.
slaxemulator@10 387 </p>
slaxemulator@10 388
slaxemulator@10 389 <?php
slaxemulator@10 390 if ($count >= 2) {
slaxemulator@10 391 ?>
slaxemulator@10 392 <p>
slaxemulator@10 393 The floppy is then loaded into memory (one dot each 64k) and you will be prompted to
slaxemulator@10 394 insert the next floppy, <i>fd002.img</i>. And so on.
slaxemulator@10 395 </p>
slaxemulator@10 396
slaxemulator@10 397 <p>
slaxemulator@10 398 The floppy set detects disk swaps and can be used without keyboard.
slaxemulator@10 399 </p>
slaxemulator@10 400 <?php
slaxemulator@10 401 }
slaxemulator@10 402 ?>
slaxemulator@10 403 <p>
slaxemulator@10 404 Good luck.
slaxemulator@10 405 </p>
slaxemulator@10 406 <?php
slaxemulator@10 407 }
slaxemulator@10 408 ?>
slaxemulator@10 409
pascal@94 410 <div class="nav_box">
pascal@94 411 <h4>How does it work ?</h4>
pascal@94 412 <p>
pascal@94 413 This tool updates the boot sector of your kernel with
pascal@94 414 <a href="http://hg.slitaz.org/wok/raw-file/b84ff32e3457/linux/stuff/linux-header-2.6.34.u">this patch</a>.
pascal@94 415 You may add a default cmdline and an initramfs. The cmdline can be edited at boot
pascal@94 416 time but the keyboard is not mandatory.
pascal@94 417 A <a href="bootloader"> standalone version</a> is available.
pascal@94 418 </p>
pascal@94 419 <p>
pascal@94 420 Each part (boot, setup, cmdline, kernel, initramfs) is aligned to 512 bytes.
pascal@94 421 The result is split to fit the floppy size.
pascal@94 422 The last floppy image is padded with zeros.
pascal@94 423 </p>
pascal@94 424 </div>
pascal@94 425
slaxemulator@10 426 <!-- End of content with round corner -->
slaxemulator@10 427 </div>
slaxemulator@10 428 <div id="content_bottom">
slaxemulator@10 429 <div class="bottom_left"></div>
slaxemulator@10 430 <div class="bottom_right"></div>
slaxemulator@10 431 </div>
slaxemulator@10 432
slaxemulator@10 433 <!-- Start of footer and copy notice -->
slaxemulator@10 434 <div id="copy">
slaxemulator@10 435 <p>
slaxemulator@10 436 Copyright &copy; <?php echo date('Y'); ?> <a href="http://www.slitaz.org/">SliTaz</a> -
slaxemulator@10 437 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>
slaxemulator@10 438 </p>
slaxemulator@10 439 <!-- End of copy -->
slaxemulator@10 440 </div>
slaxemulator@10 441
slaxemulator@10 442 <!-- Bottom and logo's -->
slaxemulator@10 443 <div id="bottom">
slaxemulator@10 444 <p>
slaxemulator@10 445 <a href="http://validator.w3.org/check?uri=referer"><img src="../../css/pics/website/xhtml10.png" alt="Valid XHTML 1.0" title="Code validé XHTML 1.0" style="width: 80px; height: 15px;" /></a>
slaxemulator@10 446 </p>
slaxemulator@10 447 </div>
slaxemulator@10 448
slaxemulator@10 449 </body>
slaxemulator@10 450 </html>