/usr/share/doc/HOWTO/fr-html/Bootdisk-HOWTO.html is in doc-linux-fr-html 2013.01-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 | <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Guide pratique des disquettes d'amorçage</title><link rel="stylesheet" type="text/css" href="style.css"/><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/><meta name="description" content="Ce document explique comment concevoir et créer ses propres disquettes d'amorçage et disquettes racines pour Linux. Ces disquettes peuvent être utilisées comme disques de secours, ou pour l'essai de nouveaux composants système. Avant de tenter de créer une disquette d'amorçage, il est recommandé d'avoir un compréhension raisonnable de l'administration d'un système Linux. Si vous souhaitez juste créer des disquettes de secours, lisez la ."/></head><body><div xml:lang="fr" class="article"><div class="titlepage"><div><div><h2 class="title"><a id="d0e1"/>Guide pratique des disquettes d'amorçage</h2></div><div><h3 class="subtitle"><em>Version française du <span class="foreignphrase"><em class="foreignphrase">Bootdisk
HOWTO</em></span></em></h3></div><div><div class="author"><h3 class="author"><span class="firstname">Tom</span> <span class="surname">Fawcett</span></h3><div class="affiliation"><div class="address"><p><code class="email"><<a class="email" href="mailto:fawcett CHEZ croftj POINT net">fawcett CHEZ croftj POINT net</a>></code></p></div></div></div></div><div><p class="othercredit"><span class="contrib">Adaptation française</span> : <span class="firstname">Mathieu</span> <span class="surname">Decore</span></p><div class="affiliation"><div class="address"><p><code class="email"><<a class="email" href="mailto:mdecore CHEZ linux TIRET france POINT org">mdecore CHEZ linux TIRET france POINT org</a>></code></p></div></div></div><div><p class="othercredit"><span class="contrib">Adaptation française (version 3.5)</span> : <span class="firstname">Frank</span> <span class="surname">Pavageau</span></p><div class="affiliation"><div class="address"><p><code class="email"><<a class="email" href="mailto:pavageau CHEZ imaginet POINT fr">pavageau CHEZ imaginet POINT fr</a>></code></p></div></div></div><div><p class="othercredit"><span class="contrib">Relecture de la version française</span> : <span class="firstname">Guillaume</span> <span class="surname">Hatt</span></p><div class="affiliation"><div class="address"><p><code class="email"><<a class="email" href="mailto:ghatt CHEZ netcourrier POINT com">ghatt CHEZ netcourrier POINT com</a>></code></p></div></div></div><div><p class="othercredit"><span class="contrib">Préparation de la publication</span> : <span class="firstname">Jean-Philippe</span> <span class="surname">Guérard</span></p><div class="affiliation"><div class="address"><p><code class="email"><<a class="email" href="mailto:jean TIRET philippe POINT guerard CHEZ laposte POINT net">jean TIRET philippe POINT guerard CHEZ laposte POINT net</a>></code></p></div></div></div><div><p class="releaseinfo">Version 4.5.fr.1.0</p></div><div><p class="pubdate">20 juin 2003</p></div><div><div class="revhistory"><table summary="Historique des versions"><tr><th align="left" valign="top" colspan="3"><strong>Historique des versions</strong></th></tr><tr><td align="left">Version 4.5.fr.1.0</td><td align="left">2003-06-20</td><td align="left">MD, GH, JPG</td></tr><tr><td align="left" colspan="3">
Mise à jour de la version française. Conversion en XML (MD).
</td></tr><tr><td align="left">Version 4.5</td><td align="left">Janvier 2002</td><td align="left">TF</td></tr><tr><td align="left">Version 4.0</td><td align="left">2000-04-01</td><td align="left">TF</td></tr><tr><td align="left">Version 3.5.fr.1.0</td><td align="left">Juillet 1999</td><td align="left">FP</td></tr><tr><td align="left">Version 3.5</td><td align="left">Juillet 1999</td><td align="left">TF</td></tr></table></div></div><div><div class="abstract"><p class="title"><strong>Résumé</strong></p><p>
Ce document explique comment concevoir et créer ses propres disquettes
d'amorçage et disquettes racines pour Linux. Ces disquettes peuvent être
utilisées comme disques de secours, ou pour l'essai de nouveaux
composants système. Avant de tenter de créer une disquette d'amorçage,
il est recommandé d'avoir un compréhension raisonnable de
l'administration d'un système Linux. Si vous souhaitez juste créer des
disquettes de secours, lisez la <a class="xref" href="#distbootdisks" title="1. Disques d'amorce préfabriqués">Section 1, « Disques d'amorce préfabriqués »</a>.
</p></div></div></div><hr/></div><div class="toc"><p><strong>Table des matières</strong></p><dl class="toc"><dt><span class="sect1"><a href="#d0e121">1. Préface</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e140">1.1. Notes</a></span></dt><dt><span class="sect2"><a href="#d0e160">1.2. À faire</a></span></dt><dt><span class="sect2"><a href="#d0e208">1.3. Retours et remerciements</a></span></dt><dt><span class="sect2"><a href="#d0e220">1.4. Politique de distribution</a></span></dt><dt><span class="sect2"><a href="#d0e273">1.5. Notes du traducteur</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e330">2. Introduction</a></span></dt><dt><span class="sect1"><a href="#d0e392">3. Disques d'amorce et démarrage</a></span></dt><dd><dl><dt><span class="sect2"><a href="#boot">3.1. Démarrage</a></span></dt><dt><span class="sect2"><a href="#d0e558">3.2. Types de disques</a></span></dt></dl></dd><dt><span class="sect1"><a href="#buildroot">4. Construire un système racine</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e621">4.1. Aperçu</a></span></dt><dt><span class="sect2"><a href="#creatingrootfs">4.2. Création du système de fichiers</a></span></dt><dt><span class="sect2"><a href="#d0e919">4.3. Remplissage du système de fichiers</a></span></dt><dt><span class="sect2"><a href="#PAMNSS">4.4. Utilisation de PAM et NSS</a></span></dt><dt><span class="sect2"><a href="#d0e1688">4.5. Modules</a></span></dt><dt><span class="sect2"><a href="#d0e1746">4.6. Quelques ultimes détails</a></span></dt><dt><span class="sect2"><a href="#wrappingitup">4.7. C'est dans la poche</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e1803">5. Choisir un noyau</a></span></dt><dt><span class="sect1"><a href="#d0e1838">6. Assemblage et fabrication de la ou des disquettes</a></span></dt><dd><dl><dt><span class="sect2"><a href="#usinglilo">6.1. Transfert du noyau avec LILO</a></span></dt><dt><span class="sect2"><a href="#withoutlilo">6.2. Transfert du noyau sans LILO</a></span></dt><dt><span class="sect2"><a href="#ramdiskword">6.3. Mise en place du mot disque mémoire</a></span></dt><dt><span class="sect2"><a href="#d0e2166">6.4. Transfert du système racine</a></span></dt></dl></dd><dt><span class="sect1"><a href="#troubleshooting">7. En cas de problème, ou l'agonie de la défaite</a></span></dt><dt><span class="sect1"><a href="#slimfast">8. Réduire la taille du système racine</a></span></dt><dd><dl><dt><span class="sect2"><a href="#high-density">8.1. Augmentez la densité du disque</a></span></dt><dt><span class="sect2"><a href="#d0e2582">8.2. Remplacer les utilitaires indispensables par BusyBox</a></span></dt><dt><span class="sect2"><a href="#d0e2611">8.3. Changez de shell</a></span></dt><dt><span class="sect2"><a href="#d0e2644">8.4. Nettoyez les bibliothèques et binaires</a></span></dt><dt><span class="sect2"><a href="#d0e2672">8.5. Déplacez les fichiers non essentiels vers un disque
utilitaire</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e2683">9. Sujets divers</a></span></dt><dd><dl><dt><span class="sect2"><a href="#nonramdiskroot">9.1. Système racine sans disque mémoire</a></span></dt><dt><span class="sect2"><a href="#utilitydisk">9.2. Construire un disque utilitaire</a></span></dt></dl></dd><dt><span class="sect1"><a href="#pros">10. La méthode des pros</a></span></dt><dt><span class="sect1"><a href="#cdrom">11. Créer des CD-ROM amorçables</a></span></dt><dd><dl><dt><span class="sect2"><a href="#d0e2936">11.1. Qu'est-ce que El Torito ?</a></span></dt><dt><span class="sect2"><a href="#d0e2955">11.2. Comment ça marche</a></span></dt><dt><span class="sect2"><a href="#d0e2983">11.3. Comment le faire marcher</a></span></dt><dt><span class="sect2"><a href="#d0e3055">11.4. Créer des CD-ROM Win9x amorçables</a></span></dt></dl></dd><dt><span class="sect1"><a href="#d0e3099">12. Foire Aux Questions (FAQ)</a></span></dt><dt><span class="appendix"><a href="#references">A. Ressources et pointeurs</a></span></dt><dd><dl><dt><span class="sect1"><a href="#distbootdisks">1. Disques d'amorce préfabriqués</a></span></dt><dt><span class="sect1"><a href="#d0e3714">2. Paquetages de secours</a></span></dt><dt><span class="sect1"><a href="#d0e3726">3. LILO : le chargeur Linux</a></span></dt><dt><span class="sect1"><a href="#d0e3741">4. Utilisation du disque mémoire</a></span></dt><dt><span class="sect1"><a href="#d0e3753">5. Le processus de démarrage de Linux</a></span></dt></dl></dd><dt><span class="appendix"><a href="#d0e3812">B. Codes d'erreur du démarrage de LILO</a></span></dt><dt><span class="appendix"><a href="#listings">C. Exemple de contenu de répertoires sur un disque racine</a></span></dt><dt><span class="appendix"><a href="#utilitylist">D. Exemple de contenu des répertoires d'un disque utilitaire</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e121"/>1. Préface</h2></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note: Ce document peut être obsolète."><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"/></td><th align="left">Ce document peut être obsolète.</th></tr><tr><td align="left" valign="top"><p>
Si la date sur la page de titre a plus de six mois, vérifiez la page du
Projet de documentation Linux (LDP) <a class="ulink" href="http://www.ibiblio.org/LDP/HOWTO/Bootdisk-HOWTO.html" target="_top">http://www.ibiblio.org/LDP/HOWTO/Bootdisk-HOWTO.html</a> (et
sa traduction française <a class="ulink" href="http://www.traduc.org/docs/howto/lecture/Bootdisk-HOWTO.html" target="_top">http://www.traduc.org/docs/howto/lecture/Bootdisk-HOWTO.html</a>) au cas où une version plus
récente s'y trouverait.
</p></td></tr></table></div><p>
Bien que ce document soit lisible dans sa forme texte, il a
<span class="emphasis"><em>bien</em></span> meilleure allure en PostScript, PDF ou HTML en
raison de la typographie utilisée.
</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e140"/>1.1. Notes</h3></div></div></div><p>
<a id="d0e145" class="indexterm"/> Graham Chapman
(<code class="email"><<a class="email" href="mailto:grahamc CHEZ zeta POINT org POINT au">grahamc CHEZ zeta POINT org POINT au</a>></code>) a
écrit le premier Bootdisk-HOWTO et en a assuré la maintenance jusqu'à la
version 3.1. Tom Fawcett (<code class="email"><<a class="email" href="mailto:fawcett CHEZ croftj POINT net">fawcett CHEZ croftj POINT net</a>></code>)
a ajouté beaucoup d'informations pour le support du noyau 2.0, et
effectue désormais la maintenance du document, depuis la version 3.2 qui
contient toujours une bonne partie écrite par Chapman. Chapman a
disparu de la communauté Linux et personne ne sait actuellement où il se
trouve.
</p><p>
Les informations contenues dans ce document concernent Linux sur
plate-forme <span class="trademark">Intel</span>™. Bien des éléments doivent
pouvoir être appliqués à Linux sur d'autres processeurs, mais nous n'en
avons pas personnellement l'expérience, ni ne possédons d'informations
de ce type. Si quelqu'un a expérimenté les disques d'amorce sur d'autres
plates-formes, qu'il nous contacte.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e160"/>1.2. À faire</h3></div></div></div><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
User-mode-linux (<a class="ulink" href="http://user-mode-linux.sourceforge.net/" target="_top">http://user-mode-linux.sourceforge.net/</a>) semble être un
bon moyen de tester les disquettes d'amorce sans avoir à redémarrer la
machine sans arrêt. Je ne l'ai pas testé. Si quelqu'un l'a fait
fonctionner de manière significative pour fabriquer ses propres
disquettes d'amorce, merci de me le faire savoir.</p></li><li class="listitem"><p>Ré-analyser la distribution de la disquettes d'amorce et
mettre à jour la section « La méthode des pros »
</p></li><li class="listitem"><p>
Trouver jusqu'où la séquence init-getty-login peut être simplifiée, et
la remplacer. Quelque personnes m'ont dit que <span class="command"><strong>init</strong></span>
peut être un lien vers <span class="command"><strong>/bin/sh</strong></span> ; si c'est le cas, et
que cela n'impose pas de grandes modifications, changer les instructions
pour le faire. Cela permettrait d'éliminer l'utilisation de
<span class="command"><strong>getty</strong></span>, <span class="command"><strong>login</strong></span>,
<span class="command"><strong>gettydefs</strong></span>, et sans doute tout ce qui concerne PAM et
NSS.
</p></li><li class="listitem"><p>
Aller à nouveau dans le code source du noyau 2.4 et écrire une
explication détaillée sur la procédure de démarrage et de chargement du
disque mémoire (seulement si je le comprends mieux). Il y a des
fonctionnalités à propos de <span class="command"><strong>initrd</strong></span> et les limitations
concernant les périphériques de démarrage (comme les cartes flash) que
je ne comprends pas encore.
</p></li><li class="listitem"><p>
Supprimer la section qui décrit comment mettre à jour une disquettes
d'amorce. C'est la plupart du temps source de trop de tracas.
</p></li><li class="listitem"><p>
Remplacer la commande <span class="command"><strong>rdev</strong></span> par les mots-clefs
<span class="command"><strong>LILO</strong></span>.
</p></li></ol></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e208"/>1.3. Retours et remerciements</h3></div></div></div><p>
Tout retour, bon ou mauvais, sur le contenu de ce document est le
bienvenu. Nous avons fait de notre mieux pour vérifier que les
instructions et informations ici présentes sont précises et fiables.
Merci de nous signaler toute erreur ou omission.
</p><p>
Nous remercions les nombreuses personnes nous ayant fourni des
corrections et suggestions. Leurs contributions ont permis d'améliorer
ce document bien au delà de ce que nous aurions pu réaliser seuls.
</p><p>
Envoyez vos commentaires, corrections et questions en anglais à l'auteur
à l'adresse ci-dessus (ou au traducteur pour des problèmes dans la
version française). Cela ne me dérange pas d'essayer de répondre à vos
questions, mais merci de lire la <a class="xref" href="#troubleshooting" title="7. En cas de problème, ou l'agonie de la défaite">Section 7, « En cas de problème, ou l'agonie de la défaite »</a>
d'abord.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e220"/>1.4. Politique de distribution</h3></div></div></div><p><span class="foreignphrase"><em class="foreignphrase">
Copyright © 1995,1996,1997,1998,1999 by Tom Fawcett and Graham
Chapman. This document may be distributed under the terms set forth
in the Linux Documentation Project License at
<a class="ulink" href="http://www.ibiblio.org/LDP/COPYRIGHT.html" target="_top">
http://www.ibiblio.org/LDP/COPYRIGHT.html</a>. Please contact the
authors if you are unable to get the license.
</em></span></p><p><span class="foreignphrase"><em class="foreignphrase">
Copyright © 1999,2003 by Frank Pavageau and copyright ©
2003 by Mathieu Decore and Guillaume Hatt for the French translation.
This document may be distributed under the terms of the Linux
Documentation Project License, which is hereby included by reference
<a class="ulink" href="http://www.ibiblio.org/LDP/COPYRIGHT.html" target="_top">http://www.ibiblio.org/LDP/COPYRIGHT.html</a>.
</em></span></p><p><span class="foreignphrase"><em class="foreignphrase">
This is free documentation. It is distributed in the hope that it will
be useful, but <span class="emphasis"><em>without any warranty</em></span>; without even
the implied warranty of <span class="emphasis"><em>merchantability</em></span> or
<span class="emphasis"><em>fitness for a particular purpose</em></span>.
</em></span></p><p>
Copyright © 1995,1996,1997,1998,1999 Tom Fawcett et Graham
Chapman. Ce document peut être distribué sous les termes de la Licence
du Linux Documentation Project lisible à <a class="ulink" href="http://www.ibiblio.org/LDP/COPYRIGHT.html" target="_top">http://www.ibiblio.org/LDP/COPYRIGHT.html</a>. Merci de
contacter les auteurs si vous n'arrivez pas à récupérer la licence.
</p><p>
Copyright © 1999 Frank Pavageau et copyright © 2003
Mathieu Decore et Guillaume Hatt pour la version française. Ce document
est distribué sous les termes de la licence du Projet de documentation
Linux (LDP). Cette licence est ci-incluse par référence : <a class="ulink" href="http://www.ibiblio.org/LDP/COPYRIGHT.html" target="_top">http://www.ibiblio.org/LDP/COPYRIGHT.html</a>.
</p><p>
Cette documentation est libre. Elle est distribuée dans l'espoir d'être
utile, mais <span class="emphasis"><em>sans aucune garantie</em></span> ; sans même la
garantie implicite de <span class="emphasis"><em>valeur marchande</em></span> ou de
<span class="emphasis"><em>correspondre à un but particulier</em></span>.
</p><p>
Vous utilisez les informations contenues dans ce document à vos
propres risques. Nous déclinons toute responsabilité quant à son
contenu. L'utilisation des concepts, des exemples ou de tout autre
contenu se fait entièrement à vos propres risques.
</p><p>
Tous les droits sont détenus par leurs propriétaires respectifs, sauf
mention contraire explicite. L'utilisation d'un terme dans ce document
ne constitue pas une limitation à sa validité en tant que marque.
</p><p>
Le fait de citer un produit ou une marque particulière ne constitue
pas un endossement.
</p><p>
Il est fortement conseillé d'effectuer une sauvegarde de votre système
avant une installation importante ainsi qu'à intervalles réguliers.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e273"/>1.5. Notes du traducteur</h3></div></div></div><p>
Correspondances anglais/français utilisées dans la traduction :
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>I/O : E/S, entrées/sorties.</p></li><li class="listitem"><p>backup : archive.</p></li><li class="listitem"><p>boot loader : chargeur, lanceur.</p></li><li class="listitem"><p>boot : amorce, amorcer, démarrage, démarrer.</p></li><li class="listitem"><p>boot/root disk : disquette d'amorce/racine.</p></li><li class="listitem"><p>dynamic library : bibliothèque partagée.</p></li><li class="listitem"><p>filesystem : système de fichiers, système.</p></li><li class="listitem"><p>inode : i-nœud.</p></li><li class="listitem"><p>library : bibliothèque.</p></li><li class="listitem"><p>loopback device : périphérique de boucle.</p></li><li class="listitem"><p>package : paquetage.</p></li><li class="listitem"><p>path : chemin.</p></li><li class="listitem"><p>ramdisk : disque virtuel en mémoire, disque mémoire.</p></li><li class="listitem"><p>root device : périphérique racine.</p></li><li class="listitem"><p>root : racine.</p></li><li class="listitem"><p>runlevel : niveau d'exécution.</p></li><li class="listitem"><p>swap : pagination.</p></li></ul></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e330"/>2. Introduction</h2></div></div></div><p>
Les disques d'amorce Linux sont utiles dans nombre de situations,
telles que :
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Tester un nouveau noyau ;</p></li><li class="listitem"><p>Redémarrer après un problème de disque : tout depuis la
perte d'un secteur d'amorce à l'atterrissage d'une tête de lecture sur
le disque ;
</p></li><li class="listitem"><p>Réparer un système endommagé. Une petite erreur en tant
que root peut rendre le système inutilisable, et il peut alors être
nécessaire de démarrer depuis une disquette pour corriger le problème ;
</p></li><li class="listitem"><p>Mettre à jour des fichiers critiques du système, tels
que <code class="filename">libc.so</code>.
</p></li></ul></div><p>
Les disques d'amorce peuvent être obtenus de différentes manières :
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Utiliser ceux d'une distribution telle que la Slackware.
Cela vous permettra au moins de démarrer ;
</p></li><li class="listitem"><p>Utiliser un paquetage de création de disques de secours,
prévus pour les cas d'urgence ;
</p></li><li class="listitem"><p>Apprendre ce que nécessite le fonctionnement de chaque
type de disque, puis créer les vôtres.
</p></li></ul></div><p>
Certaines personnes choisissent la dernière solution afin de tout
faire eux-mêmes. Ainsi, si quelque chose ne marche plus, ils peuvent
se débrouiller pour corriger le problème. Et c'est un excellent moyen
pour apprendre le fonctionnement d'un système Linux.
</p><p>
Ce document suppose une certaine familiarité avec les concepts
d'administration d'un système Linux. Par exemple, vous devez connaître
les répertoires, les systèmes de fichiers, les disquettes. Vous devez
savoir utiliser <span class="command"><strong>mount</strong></span> et <span class="command"><strong>df</strong></span>, à
quoi servent les fichiers <code class="filename">/etc/passwd</code> et
<code class="filename">fstab</code> et quelle tête ils ont. Enfin, vous devez
savoir que la plupart des commandes dans ce <span class="foreignphrase"><em class="foreignphrase">howto</em></span> doivent être exécutées
en tant que root.
</p><p>
Créer vos propres disquettes d'amorce à partir de zéro peut être
compliqué. Si vous n'avez pas lu la FAQ Linux et autres documents du
même genre, tels que le <span class="foreignphrase"><em class="foreignphrase">howto</em></span> d'installation Linux et le Guide
d'installation de Linux, vous ne devriez pas essayer de créer des
disques d'amorce. Si vous souhaitez juste créer des disques pour
prévenir les cas urgents, il est <span class="emphasis"><em>bien</em></span> plus simple
d'en récupérer des préfabriqués. Lisez l'appendice <a class="xref" href="#distbootdisks" title="1. Disques d'amorce préfabriqués">Section 1, « Disques d'amorce préfabriqués »</a> ci-dessous pour savoir où en trouver.
</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e392"/>3. Disques d'amorce et démarrage</h2></div></div></div><a id="d0e395" class="indexterm"/><p>
Un disque d'amorce est essentiellement un système Linux miniature et
auto-suffisant contenu sur une disquette. Il doit pouvoir effectuer
nombre d'opérations possibles sur un système Linux de taille
normale. Avant d'essayer d'en créer un, vous devez comprendre les
bases du démarrage de Linux. Nous en faisons ici une présentation qui
devrait suffire à la compréhension de la suite du document. Bien des
détails ou des possibilités ont été omis.
</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="boot"/>3.1. Démarrage</h3></div></div></div><a id="d0e403" class="indexterm"/><p>
Tous les PC démarrent en exécutant du code situé en mémoire morte (à
savoir, le <acronym class="acronym">BIOS</acronym>) afin de charger le secteur situé au
secteur 0, cylindre 0 du <span class="emphasis"><em>disque d'amorce</em></span>. Celui-ci
est habituellement le premier lecteur de disquette (appelé
<span class="emphasis"><em>A:</em></span> sous DOS et <code class="filename">/dev/fd0</code> sous
Linux). Le <acronym class="acronym">BIOS</acronym> essaye alors d'exécuter ce secteur.
Sur la plupart des disques d'amorce, le secteur 0, cylindre 0 contient :
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>soit le code d'un chargeur tel que
<span class="command"><strong>LILO</strong></span>, qui trouve le noyau, le charge et l'exécute
pour réaliser le démarrage proprement dit,
</p></li><li class="listitem"><p>soit le début du noyau d'un système d'exploitation, tel
que Linux.
</p></li></ul></div><p>
Si un noyau Linux a été copié directement sur une disquette, le
premier secteur du disque sera le premier secteur du noyau Linux
lui-même. Ce premier secteur continuera le démarrage en chargeant le
reste du noyau depuis le périphérique d'amorce.
</p><p>
Une fois que le noyau est complètement chargé, il effectue certaines
initialisations de périphériques ainsi que de ses données internes. Une
fois qu'il est complètement initialisé, il consulte un endroit
particulier dans son image appelé le <span class="emphasis"><em>mot disque
mémoire</em></span>. Ce mot précise comment et où trouver le système de
fichiers racine. Un système de fichiers racine est simplement celui qui
est monté en tant que « / ». Il faut dire au noyau où trouver ce système
racine ; s'il ne peut trouver d'image à charger, il s'arrête.
</p><p>
Dans certains cas au démarrage (souvent lors du démarrage depuis une
disquette), le système de fichiers racine est chargé dans un
<span class="command"><strong>disque mémoire</strong></span>, auquel le système accède ensuite en
mémoire comme s'il s'agissait d'un vrai disque. Il y a deux raisons à
un tel chargement en mémoire. Premièrement, la mémoire vive est de
plusieurs ordres de magnitude plus rapide qu'une disquette, et le
système est donc rapide ; deuxièmement, le noyau peut charger un
<span class="emphasis"><em>système de fichiers compressé</em></span> depuis la disquette
et le décompresser en mémoire, permettant ainsi de stocker plus de
fichiers sur la disquette.
</p><p>
Une fois le système de fichiers racine chargé et monté, vous voyez un
message tel que :
</p><pre class="programlisting">
VFS: Mounted root (ext2 filesystem) readonly.
</pre><a id="d0e452" class="indexterm"/><a id="d0e456" class="indexterm"/><a id="d0e460" class="indexterm"/><p>
À ce moment, le système trouve le programme <span class="command"><strong>init</strong></span> dans
le système racine (dans <code class="filename">/bin</code> ou
<code class="filename">/sbin</code>) et l'exécute. <span class="command"><strong>init</strong></span> lit sa
configuration dans <code class="filename">/etc/inittab</code>, cherche une ligne
nommée <span class="emphasis"><em>sysinit</em></span>, et exécute le script indiqué. Le
script <span class="command"><strong>sysinit</strong></span> est en général un fichier du genre
<code class="filename">/etc/rc</code> ou <code class="filename">/etc/init.d/boot</code>.
Le script est un ensemble de commandes shell qui mettent en place les
services de base du système, tels que :
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Lancer <span class="command"><strong>fsck</strong></span> sur tous les disques
;</p></li><li class="listitem"><p>Charger les <span class="emphasis"><em>modules</em></span> nécessaires du
noyau ;</p></li><li class="listitem"><p>Lancer la pagination ;</p></li><li class="listitem"><p>Initialiser le réseau ;</p></li><li class="listitem"><p>Monter les disques indiqués dans
<code class="filename">fstab</code>.</p></li></ul></div><p>
Ce script appelle lui-même souvent nombre d'autres scripts pour réaliser
une initialisation modulaire. Par exemple, dans la structure SysVinit
habituelle, le répertoire <code class="filename">/etc/rc.d/</code> contient une
structure complexe de sous-répertoires dont les fichiers indiquent
comment lancer et arrêter la plupart des services du système. En revanche,
sur un disque d'amorce, le script <span class="command"><strong>sysinit</strong></span> est
souvent très simple.
</p><p>
Quand le script <span class="command"><strong>sysinit</strong></span> se termine, le contrôle
revient à <span class="command"><strong>init</strong></span>, qui entre alors dans le
<span class="emphasis"><em>niveau d'exécution par défaut</em></span>, spécifié dans
<code class="filename">inittab</code> par le mot clé
<span class="emphasis"><em>initdefault</em></span>. La ligne du niveau d'exécution indique
en général un programme tel que <span class="command"><strong>getty</strong></span>, responsable de
la gestion des communications par la console ou les
<code class="filename">tty</code>. C'est le programme <span class="command"><strong>getty</strong></span>
qui affiche l'invite habituelle <span class="emphasis"><em>login:</em></span>. Lui-même
exécute à son tour le programme <span class="command"><strong>login</strong></span> pour gérer la
validation du login et mettre en place la session de l'utilisateur.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e558"/>3.2. Types de disques</h3></div></div></div><p>
Après avoir revu les bases du démarrage, nous pouvons définir les
différents types de disques mis en jeu. Ces disques sont classés en
quatre catégories. Ça et là dans le document, on emploie le terme
<span class="emphasis"><em>disque</em></span> pour désigner une disquette, sauf précision
contraire, bien que la majeure partie de la discussion puisse également
s'appliquer à des disques durs.
</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Amorce</span></dt><dd><p>
Un disque contenant un noyau pouvant être amorcé. Il peut
être utilisé pour démarrer le noyau, qui pourra alors charger un
système racine depuis un autre disque. Il est en général nécessaire
d'indiquer au noyau où se trouve ce système racine.
</p><p>
Souvent un disque d'amorce charge le système racine depuis une autre
disquette, mais il est possible de lui indiquer un disque dur d'où il
chargera le système racine à la place. Souvent, c'est dans le but de
tester un nouveau noyau (d'ailleurs, <span class="command"><strong>make zdisk</strong></span> crée
un tel disque d'amorce automatiquement à partir du code source du
noyau).
</p></dd><dt><span class="term">Racine</span></dt><dd><p>
Un disque avec un système de fichiers contenant les
fichiers nécessaires au fonctionnement d'un système Linux. Un tel
disque ne contient pas forcément un noyau ou un chargeur.
</p><a id="d0e584" class="indexterm"/><p>
Un disque racine peut être utilisé pour faire tourner le système
indépendamment de tout autre disque, une fois le noyau amorcé. En
général le disque racine est copié automatiquement vers un disque
mémoire. Cela permet un accès au disque racine bien plus rapide, et
libère le lecteur pour une disquette d'utilitaires.
</p></dd><dt><span class="term">Amorce/racine</span></dt><dd><p> Un disque contenant à la fois un noyau
<a id="d0e595" class="indexterm"/>
et un système de fichiers racine. Autrement dit, il contient tout ce
qui est nécessaire au démarrage et au fonctionnement d'un système
Linux sans disque dur. L'avantage de ce type de disque est sa
compacité : tout ce dont on a besoin est sur un seul
disque. Néanmoins, la taille toujours plus importante des programmes
implique une difficulté croissante pour tout faire tenir sur une seule
disquette, même avec de la compression.
</p></dd><dt><span class="term">Utilitaire</span></dt><dd><p> Un disque contenant un système de fichier non destiné
à être monté en tant que racine. Il s'agit d'un disque de données
supplémentaires. Vous pouvez utiliser ce genre de disque pour rajouter
des utilitaires, quand vous en avez trop pour un seul disque amorce.
<a id="d0e605" class="indexterm"/>
</p></dd></dl></div><p>
En général, lorsque l'on parle de « construire un disque
d'amorce », c'est de la création des parties amorce (noyau)
et racine
(fichiers) qu'il est question, soit en un seul morceau (un seul disque
amorce/racine), soit séparément (un disque amorce et un racine).
L'approche la plus flexible pour des disquettes de secours est
d'utiliser des disquettes amorce et racine séparées, et une ou plusieurs
disquettes utilitaires pour supporter le trop-plein.
</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="buildroot"/>4. Construire un système racine</h2></div></div></div><p>
Pour créer un système racine, il faut sélectionner les fichiers
nécessaires au système pour fonctionner. Dans cette section nous
décrivons comment créer un <span class="emphasis"><em>système racine
compressé</em></span>. Une option moins courante est de créer un système
non compressé sur une disquette que l'on monte directement ; cette
alternative est décrite dans la <a class="xref" href="#nonramdiskroot" title="9.1. Système racine sans disque mémoire">Section 9.1, « Système racine sans disque mémoire »</a>.
</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e621"/>4.1. Aperçu</h3></div></div></div><p>
Un système racine doit contenir tout ce qui est nécessaire au bon
fonctionnement d'un système Linux complet. Pour cela, le disque doit
contenir un système Linux minimum :
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>La structure de base des fichiers ;</p></li><li class="listitem"><p>Un ensemble minimum de répertoires :
<code class="filename">/dev</code>, <code class="filename">/proc</code>,
<code class="filename">/bin</code>, <code class="filename">/etc</code>,
<code class="filename">/lib</code>, <code class="filename">/usr</code>,
<code class="filename">/tmp</code> ;
</p></li><li class="listitem"><p>Un ensemble d'utilitaires de base :
<span class="command"><strong>sh</strong></span>, <span class="command"><strong>ls</strong></span>, <span class="command"><strong>cp</strong></span>,
<span class="command"><strong>mv</strong></span>, et cætera ;
</p></li><li class="listitem"><p>Un ensemble minimum de fichiers de
configuration :
<span class="command"><strong>rc</strong></span>, <code class="filename">inittab</code>,
<code class="filename">fstab</code>, et cætera ;
</p></li><li class="listitem"><p>Des périphériques : <code class="filename">/dev/hd*</code>,
<code class="filename">/dev/tty*</code>, <code class="filename">/dev/fd0</code>, et cætera ;
</p></li><li class="listitem"><p>Des bibliothèques d'exécution fournissant les fonctions
de base nécessaires aux utilitaires.</p></li></ul></div><p>
Bien sûr, n'importe quel système devient utile dès que l'on peut faire
tourner quelque chose dessus, et une disquette racine ne devient en
général utilisable que lorsque vous pouvez faire quelque chose du genre
:
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Contrôler un système de fichiers sur un autre disque ;
par exemple, pour contrôler le système racine de votre disque dur, vous
devez pouvoir démarrer Linux depuis un autre disque, telle qu'une
disquette racine. Vous pouvez alors lancer <span class="command"><strong>fsck</strong></span> sur
votre disque racine habituel tant qu'il n'est pas monté ;
</p></li><li class="listitem"><p>Récupérer tout ou partie de votre disque racine initial
à partir d'une sauvegarde en utilisant des utilitaires d'archivage et de
compression tels que <span class="command"><strong>cpio</strong></span>, <span class="command"><strong>tar</strong></span>,
<span class="command"><strong>gzip</strong></span> et <span class="command"><strong>ftape</strong></span>.
</p></li></ul></div><p>
Nous décrirons comment construire un système
<span class="emphasis"><em>compressé</em></span>, ainsi appelé car il est compressé sur
disque et qu'une fois démarré, le noyau le décompresse dans un disque
mémoire. <a id="d0e725" class="indexterm"/> Avec un système compressé vous pouvez
faire tenir beaucoup de fichiers (à peu près six méga-octets) sur une
disquette standard de 1440 ko. Puisque le système de fichiers est
bien
plus gros que la disquette, il ne peut être construit directement sur la
disquette. Il nous faut le construire ailleurs et le compresser avant de
le copier sur la disquette.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="creatingrootfs"/>4.2. Création du système de fichiers</h3></div></div></div><p>
Pour créer un tel système racine, il vous faut un autre périphérique
capable de stocker tous les fichiers avant leur compression. Ce
périphérique doit pouvoir contenir à peu près quatre
méga-octets. Plusieurs solutions s'offrent à vous :
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Utiliser un <span class="emphasis"><em>disque mémoire</em></span>
(PÉRIPHÉRIQUE = <code class="filename">/dev/ram0</code>). Dans ce cas, la mémoire
est utilisée pour simuler un disque physique. Le disque mémoire doit
être suffisamment grand pour contenir un système de fichiers de la bonne
taille. Si vous utilisez <span class="command"><strong>LILO</strong></span>, cherchez dans votre
fichier de configuration (<code class="filename">/etc/lilo.conf</code>) une ligne
du type :
</p><pre class="programlisting">
RAMDISK_SIZE = nnn
</pre><a id="d0e752" class="indexterm"/><p>
qui détermine combien de mémoire peut être au plus allouée à un disque
mémoire. La valeur par défaut est de 4096 ko, ce qui devrait
suffire. Il ne sert probablement à rien de créer un tel disque mémoire
sur une machine possédant moins de 8 Mo de RAM.
</p><p>
Vérifiez que vous avez un périphérique tel que
<code class="filename">/dev/ram0</code>, <code class="filename">/dev/ram</code> ou
<code class="filename">/dev/ramdisk</code>. Si ce n'est pas le cas, créez
<code class="filename">/dev/ram0</code> avec mknod (numéro majeur 1, numéro
mineur 0).
</p></li><li class="listitem"><p>Une partition de disque dur inutilisée et assez grande
(plusieurs méga-octets) est aussi une bonne solution.
</p></li><li class="listitem"><p>Utiliser un <span class="emphasis"><em>périphérique de boucle
(loopback)</em></span>, qui permet d'utiliser un fichier comme s'il
s'agissait d'un périphérique normal. Avec un périphérique de boucle,
vous pouvez créer un fichier de 3 méga-octets sur votre disque dur et
construire le système de fichiers dedans.
</p><p>
Tapez <span class="command"><strong>man losetup</strong></span> pour savoir comment utiliser un
périphérique de boucle. Si vous n'avez pas <span class="command"><strong>losetup</strong></span>,
vous pouvez le récupérer, ainsi que des versions compatibles de
<span class="command"><strong>mount</strong></span> et <span class="command"><strong>umount</strong></span>, dans le paquetage
<span class="emphasis"><em>util-linux</em></span> disponible dans le répertoire <a class="ulink" href="ftp://ftp.win.tue.nl/pub/linux-local/utils/util-linux/" target="_top">
ftp://ftp.win.tue.nl/pub/linux-local/utils/util-linux/</a>.
</p><p>
Si vous n'avez pas de périphérique de boucle
(<code class="filename">/dev/loop0</code>, <code class="filename">/dev/loop1</code>, et cætera)
sur votre système, vous devez en créer un avec <span class="command"><strong>mknod /dev/loop0
b 7 0</strong></span>. Une fois les exécutables <span class="command"><strong>mount</strong></span> et
<span class="command"><strong>umount</strong></span> spéciaux installés, créez un fichier
temporaire sur le disque dur suffisamment grand (par exemple,
<code class="filename">/tmp/fsfile</code>). Vous pouvez utiliser une commande du
type :
</p><pre class="programlisting">
dd if=/dev/zero of=/tmp/fsfile bs=1k count=nnn
</pre><p>
pour créer un fichier de <span class="emphasis"><em>nnn</em></span> blocs.
</p><p>
Utilisez le nom du fichier à la place de PÉRIPHÉRIQUE ci-dessous. Quand
vous exécutez une commande <span class="command"><strong>mount</strong></span>, vous devez inclure
l'option <code class="option">-o loop</code> pour dire au programme d'utiliser un
périphérique de boucle. <a id="d0e835" class="indexterm"/> Par exemple :
</p><pre class="programlisting">
mount -o loop -t ext2 /tmp/fsfile /mnt
</pre><p>
va monter <code class="filename">/tmp/fsfile</code> (par périphérique de boucle)
sur le point de montage <code class="filename">/mnt</code>. Un coup de
<span class="command"><strong>df</strong></span> le confirmera.
</p></li></ul></div><p>
Après avoir choisi une de ces options, préparez le PÉRIPHÉRIQUE avec :
</p><pre class="programlisting">
dd if=/dev/zero of=PÉRIPHÉRIQUE bs=1k count=4096
</pre><p>
Cette commande initialise à zéro le périphérique. Cette étape est
importante pour la compression ultérieure du système de fichiers, afin
que toutes les portions inutilisées soient remplies de zéros pour une
compression maximum. Gardez cela à l'esprit si vous déplacez ou effacez
des fichiers sur le système de fichiers. Le système de fichiers va
désallouer correctement les blocs, <span class="emphasis"><em>mais ne va pas les
initialiser à zéro à nouveau </em></span>. Si vous effectuez beaucoup
d'effacements et de copies, votre système de fichiers compressé risque
d'être bien plus grand que nécessaire.
</p><a id="d0e861" class="indexterm"/><p>
Ensuite, créez le système de fichiers. Le noyau Linux sait charger
automatiquement deux types de système de fichiers dans un disque mémoire
: minix et ext2, avec une préférence pour ext2. Si vous le choisissez,
vous voudrez peut-être utiliser l'option <code class="option">-i</code> afin de
créer plus d'i-nœuds que par défaut ; <code class="option">-i 2000</code> est une
bonne valeur qui vous évitera de tomber à court d'i-nœuds. Vous pouvez
sinon économiser des i-nœuds en supprimant pas mal de fichiers
<code class="filename">/dev/</code> inutiles. <span class="command"><strong>mke2fs</strong></span> crée par
défaut 360 i-nœuds sur une disquette de 1,44 Mo. Je trouve
120 i-nœuds largement suffisants pour ma disquette racine
de secours, mais si vous conservez tous les périphériques dans le
répertoire <code class="filename">/dev</code> vous dépasserez facilement les 360.
L'utilisation d'un système racine compressé permet de créer un système
de fichiers plus grand, contenant donc plus d'i-nœuds par défaut, mais
vous pourrez quand même vouloir réduire le nombre de fichiers ou
augmenter le nombre d'i-nœuds.
</p><p>
Vous allez donc taper une commande du genre :
</p><pre class="programlisting">
mke2fs -m 0 -i 2000 <em class="replaceable"><code>PÉRIPHÉRIQUE</code></em>
</pre><p>
(Si vous utilisez un périphérique de boucle, le fichier que vous
utilisez doit être indiqué à la place de ce
<em class="replaceable"><code>PÉRIPHÉRIQUE</code></em>. <span class="command"><strong>mke2fs</strong></span> vous
demandera alors si vous voulez vraiment faire cela ; répondez oui.)
</p><a id="d0e896" class="indexterm"/><p>
La commande <span class="command"><strong>mke2fs</strong></span> détectera automatiquement l'espace
disponible et se configurera selon ce dernier. Le paramètre <code class="option">-m 0
</code> permet de ne pas réserver d'espace pour root, et laisse donc plus
d'espace disponible sur le disque.
</p><p>
Ensuite, montez le périphérique :
</p><pre class="programlisting">
mount -t ext2 PÉRIPHÉRIQUE /mnt
</pre><p>
(Vous devez créer un point de montage <code class="filename">/mnt</code> s'il
n'existe pas encore.) Dans les sections suivantes, tous les répertoires
destination sont supposés relatifs à <code class="filename">/mnt</code>.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e919"/>4.3. Remplissage du système de fichiers</h3></div></div></div><p>
Voici un minimum raisonnable de répertoires à créer sur votre système
racine
<a href="#ftn.d0e924" class="footnote" id="d0e924"><sup class="footnote">[1]</sup></a> :
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p> <code class="filename">/dev</code> : Périphériques, nécessaires
aux E/S ;</p></li><li class="listitem"><p> <code class="filename">/proc</code> : Répertoire de base
nécessaire au système de fichiers proc ;</p></li><li class="listitem"><p> <code class="filename">/etc</code> : Fichiers de configuration
du système ;</p></li><li class="listitem"><p> <code class="filename">/sbin</code> : Exécutables systèmes
critiques ;</p></li><li class="listitem"><p> <code class="filename">/bin</code> : Exécutables de base
considérés comme partie intégrante du système ;</p></li><li class="listitem"><p> <code class="filename">/lib</code> : Bibliothèques partagées
nécessaires à l'exécution des programmes ;</p></li><li class="listitem"><p> <code class="filename">/mnt</code> : Un point de montage pour la
maintenance des autres disques ;</p></li><li class="listitem"><p> <code class="filename">/usr</code> : Utilitaires et applications
supplémentaires.</p></li></ul></div><a id="d0e980" class="indexterm"/><a id="d0e984" class="indexterm"/><a id="d0e988" class="indexterm"/><p>
Trois de ces répertoires resteront vides sur les systèmes racine, il
suffit donc de les créer avec <span class="command"><strong>mkdir</strong></span>. Le répertoire
<code class="filename">/proc</code> n'est qu'une base sous laquelle le système
proc est placé. <code class="filename">/mnt</code> et <code class="filename">/usr</code>
ne sont que des points de montage utilisés une fois que le système
amorce/racine tourne. Encore une fois, il suffit de créer ces
répertoires.
</p><p>
Les quatre autres répertoires sont décrits dans les sections suivantes.
</p><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e1008"/>4.3.1. <code class="filename">/dev</code></h4></div></div></div><p>
<a id="d0e1014" class="indexterm"/>
Tous les systèmes Linux ont besoin d'un répertoire
<code class="filename">/dev</code> contenant un fichier spécial par périphérique
accessible au système. Le répertoire en lui-même est normal, et peut
être créé avec <span class="command"><strong>mkdir</strong></span> de la manière habituelle. Les
fichiers spéciaux de périphérique doivent par contre être créés
différemment, à l'aide de la commande <span class="command"><strong>mknod</strong></span>.
</p><p>
Il y a un raccourci par contre : copiez le contenu de votre répertoire
<code class="filename">/dev</code> existant, puis supprimez ceux dont vous n'avez
pas besoin. Il suffit juste de copier les fichiers spéciaux avec
l'option <code class="option">-R</code>. Cela copie le répertoire sans tenter de
copier le contenu des fichiers. <span class="emphasis"><em>Attention à bien utiliser un R
en majuscule !</em></span> Si vous utilisez l'option en minuscule
<code class="option">-r</code>, vous allez vous retrouver en train de copier le
contenu complet de votre disque dur — ou au moins tout ce que pourra en
contenir une disquette ! Prenez donc vos précautions, et utilisez par
exemple les commandes :
</p><pre class="programlisting">
cp -dpR /dev/fd[01]* /mnt/dev
cp -dpR /dev/tty[0-6] /mnt/dev
</pre><p>
en supposant que la disquette est montée sur <code class="filename">/mnt</code>.
Les options <code class="option">dp</code> demandent la copie des liens symboliques
en tant que lien, plutôt que celle du fichier qui se trouve au bout de
celui-ci, et la conservation des attributs originaux des fichiers, pour
garder les bons propriétaires.
</p><p>
Si vous voulez le faire vous-mêmes, utilisez <span class="command"><strong>ls -l</strong></span>
pour afficher les numéros majeurs et mineurs des périphériques qui vous
intéressent, et créez-les sur la disquette en utilisant
<span class="command"><strong>mknod</strong></span>.
</p><p>
Quelle que soit la manière retenue pour copier les périphériques, il
faut vérifier que tous les périphériques dont vous aurez besoin sont
bien présents sur la disquette de secours. Par exemple,
<span class="command"><strong>ftape</strong></span> utilise les périphériques de bande, qu'il vous
faudra donc tous copier si vous comptez utiliser votre lecteur de bande
depuis le disque amorce.
</p><p>
À noter qu'un i-nœud est nécessaire pour chaque fichier de
périphérique, et que les <span class="emphasis"><em>i-nœuds</em></span> sont parfois une
ressource rare, spécialement sur les systèmes de fichiers sur disquette.
Il n'est donc pas idiot d'enlever du répertoire
<code class="filename">/dev</code> de la disquette tous les fichiers de
périphérique dont vous n'avez pas besoin. Bien des périphériques ne sont
clairement pas nécessaires sur des systèmes spécifiques. Par exemple, si
vous n'avez pas de disques SCSI vous pouvez tranquillement enlever tous
les fichiers commençant par <code class="filename">sd</code>. De même, si vous ne
comptez pas utiliser de port série vous pouvez supprimer tous les
fichiers commençant par <code class="filename">ttyS</code>.
</p><p>
Si, en construisant le système de fichiers, vous obtenez l'erreur :
</p><pre class="programlisting">
No space left on device
</pre><p>
et que la commande <span class="command"><strong>df</strong></span> indique qu'il reste de l'espace
disponible, c'est sans doutes qu'il n'y a plus d'i-nœud disponible.
Un <span class="command"><strong>df -i</strong></span> affichera l'utilisation des i-nœuds.
</p><p>
<span class="emphasis"><em>N'oubliez pas d'inclure les fichiers suivants dans le
répertoire :</em></span> <code class="filename">console</code>,
<code class="filename">kmem</code>, <code class="filename">mem</code>,
<code class="filename">null</code>, <code class="filename">ram0</code>,
<code class="filename">tty1</code>.
</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e1113"/>4.3.2. <code class="filename">/etc</code></h4></div></div></div><a id="d0e1117" class="indexterm"/><p>
Ce répertoire doit contenir un certain nombre de fichiers de
configuration. Ce qu'il devrait contenir dépend des programmes que vous
avez l'intention d'exécuter. Sur la plupart des systèmes, on peut les
répartir en trois groupes :
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Nécessaires à tout moment, par exemple
<code class="filename">rc</code>, <code class="filename">fstab</code>,
<code class="filename">passwd</code> ;</p></li><li class="listitem"><p>Peut-être nécessaires, mais on n'en est pas sûr
;</p></li><li class="listitem"><p>Du bazar oublié là.</p></li></ol></div><p>
Les fichiers non essentiels peuvent être identifiés avec la
commande :
</p><pre class="programlisting">
ls -ltru
</pre><p>
Les fichiers sont classés dans l'ordre inverse de dernière date
d'accès, donc tout fichier qui n'est jamais lu peut être exclu d'une
disquette racine.
</p><p>
Sur mes disquettes racine, je n'ai que 15 fichiers de
configuration. Mon travail se réduit alors à gérer trois groupes de
fichiers :
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Ceux que je dois configurer pour un système d'amorce et
racine :
</p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p><code class="filename">rc.d/*</code> : scripts de démarrage du
système et de changement de niveau d'exécution ;</p></li><li class="listitem"><p><code class="filename">fstab</code> : liste des systèmes de
fichiers à monter ;</p></li><li class="listitem"><p><code class="filename">inittab</code> : paramètres pour le
processus <span class="command"><strong>init</strong></span>, le premier à être lancé au
démarrage.</p></li><li class="listitem"><p><code class="filename">gettydefs</code> : paramètres pour le
processus <span class="command"><strong>init</strong></span>, le premier à être lancé au
démarrage.</p></li></ol></div><p>
</p></li><li class="listitem"><p>Ceux que je dois nettoyer pour un système d'amorce et
racine :
</p><div class="orderedlist"><ol class="orderedlist" type="a"><li class="listitem"><p><code class="filename">passwd</code> : liste des utilisateurs,
des répertoires utilisateurs, et cætera ;</p></li><li class="listitem"><p><code class="filename">group</code> : groupes d'utilisateurs
;</p></li><li class="listitem"><p><code class="filename">shadow</code> : mots de passe cachés des
utilisateurs. Il se peut que vous n'ayez pas ce fichier
;</p></li><li class="listitem"><p><code class="filename">termcap</code> : la base de données de
fonctionnalités des terminaux.</p></li></ol></div><p>
Si la sécurité est importante, <code class="filename">passwd</code> et
<code class="filename">shadow</code> doivent être nettoyés pour ne pas copier de
mots de passe d'utilisateurs hors du système et pour qu'en cas de
démarrage sur disquette, les logins indésirables soient rejetés.
<a id="d0e1212" class="indexterm"/>
</p><p>
Assurez-vous que <code class="filename">passwd</code> contienne au moins
<span class="emphasis"><em>root</em></span>. Si vous comptez donner accès à d'autres
utilisateurs, vérifiez l'existence de leurs répertoires utilisateurs et
de leurs shells.
</p><p>
<code class="filename">termcap</code>, la base de données de terminaux, fait en
général plusieurs centaines de kilo-octets. Vous devrez faire du ménage
dans la version de votre disquette d'amorce/racine pour ne conserver que
le ou les terminaux que vous utilisez, ce qui se réduit en général à
l'entrée <span class="emphasis"><em>linux</em></span> ou
<span class="emphasis"><em>linux-console</em></span>.
</p></li><li class="listitem"><p>Le reste. Ils fonctionnent très bien tels quel, je ne
les modifie donc pas.
</p></li></ol></div><p>
Parmi tout cela, je n'ai en réalité que deux fichiers à configurer, et
ils ne doivent contenir qu'étonnamment peu de choses.
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><code class="filename">rc</code> doit contenir :
</p><pre class="programlisting">
#!/bin/sh
/bin/mount -av
/bin/hostname Kangaroo
</pre><p>
Vérifiez qu'il est exécutable, qu'il contient bien une ligne
<span class="command"><strong>#!/bin/sh</strong></span> au début et que ce sont les bons
répertoires. Il n'est pas réellement nécessaire de lancer
<span class="command"><strong>hostname</strong></span>, mais cela donne juste une meilleure allure.
</p></li><li class="listitem"><p><code class="filename">fstab</code> doit au moins contenir :
</p><pre class="programlisting">
/dev/ram0 / ext2 defaults
/dev/fd0 / ext2 defaults
/proc /proc proc defaults
</pre><p>
Vous pouvez copier des lignes de votre vrai <code class="filename">fstab</code>,
mais vous ne devriez pas monter automatiquement de partitions de
votre disque dur ; utilisez le mot clé <span class="emphasis"><em>noauto</em></span> pour
celles-là. Votre disque peut être endommagé ou mort quand vous utilisez
le disque d'amorce.
</p></li></ul></div><p>
Votre <code class="filename">inittab</code> doit être modifié pour que la ligne
<span class="command"><strong>sysinit</strong></span> lance <span class="command"><strong>rc</strong></span> ou quelque autre
script basique d'amorce. De plus, si vous ne souhaitez pas que les
utilisateurs se loguent sur les ports série, commentez toutes les
entrées <span class="command"><strong>getty</strong></span> qui font référence à des périphériques
<code class="filename">ttys</code> ou <code class="filename">ttyS</code> à la fin de la
ligne. Laissez les ports <code class="filename">tty</code> pour pouvoir vous
connecter sur la console.
</p><p>
Un fichier <code class="filename">inittab</code> minimal contient ce qui suit :
</p><pre class="programlisting">
id:2:initdefault
si::sysinit:/etc/rc
1:2345:respawn:/sbin/getty 9600 tty1
2:23:respawn:/sbin/getty 9600 tty2
</pre><p>
Le fichier <code class="filename">inittab</code> décrit ce que va lancer le
système dans divers états, dont le démarrage, le passage en mode multi
utilisateurs, et cætera. Attention aux noms de fichiers référencés dans
<code class="filename">inittab</code> ; si <span class="command"><strong>init</strong></span> ne peut
trouver le programme, le disque d'amorce s'arrêtera, et vous n'aurez
peut-être même pas de message d'erreur.
</p><a id="d0e1312" class="indexterm"/><p>
Notez que certains programmes ne peuvent être déplacés en raison
d'autres programmes qui référencent en dur leur position. Par exemple
sur mon système, <code class="filename">/etc/shutdown</code> référence en dur
<code class="filename">/etc/reboot</code>. Si je déplace
<span class="command"><strong>reboot</strong></span> vers <span class="command"><strong>/bin/reboot</strong></span>, et que je
lance une commande <span class="command"><strong>shutdown</strong></span>, elle va échouer en ne
trouvant pas le fichier <span class="command"><strong>reboot</strong></span>.
</p><a id="d0e1335" class="indexterm"/><p>
Pour le reste, copiez juste tous les fichiers texte de votre répertoire
<code class="filename">/etc</code>, ainsi que tous les exécutables présents dans
<code class="filename">/etc</code> dont vous n'êtes pas sûr de pouvoir vous
passer. Basez-vous sur l'exemple de l'<a class="xref" href="#listings" title="C. Exemple de contenu de répertoires sur un disque racine">Annexe C, <em>Exemple de contenu de répertoires sur un disque racine</em></a>. Il
vous suffira probablement de copier ces fichiers, mais les systèmes
pouvant être très différents, il n'est pas certain que le même ensemble
de fichiers sur votre système soit équivalent aux fichiers listés. La
seule méthode sûre est de partir d'<code class="filename">inittab</code> et d'en
déduire ce qui est nécessaire.
</p><p>
La plupart des systèmes utilisent maintenant un répertoire
<code class="filename">/etc/rc.d/</code> contenant des scripts shell pour les
différents niveaux d'exécution. Il faut au minimum avoir un script
<span class="command"><strong>rc</strong></span> unique, mais il peut être plus simple de carrément
copier <code class="filename">inittab</code> et le répertoire
<code class="filename">/etc/rc.d</code> depuis votre système puis de nettoyer les
scripts shell dans le répertoire <code class="filename">rc.d</code> pour enlever
tous les traitements inutiles pour un système sur disquette.
</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e1368"/>4.3.3. <code class="filename">/bin</code> et <code class="filename">/sbin</code></h4></div></div></div><p>
<a id="d0e1377" class="indexterm"/>
<a id="d0e1381" class="indexterm"/>
Le répertoire <code class="filename">/bin</code> est un endroit pratique pour
tous les utilitaires nécessaires aux opérations de base, tels que
<span class="command"><strong>ls</strong></span>, <span class="command"><strong>mv</strong></span>, <span class="command"><strong>cat</strong></span> et
<span class="command"><strong>dd</strong></span>. Voir l'<a class="xref" href="#listings" title="C. Exemple de contenu de répertoires sur un disque racine">Annexe C, <em>Exemple de contenu de répertoires sur un disque racine</em></a> pour un
exemple d'ensemble de fichiers pouvant aller dans les répertoires
<code class="filename">/bin</code> et <code class="filename">/sbin</code>. Il ne contient
aucun des utilitaires nécessaires à la récupération d'une sauvegarde,
tels que <span class="command"><strong>cpio</strong></span>, <span class="command"><strong>tar</strong></span> et
<span class="command"><strong>gzip</strong></span>. C'est parce que je place ceux-ci sur une
disquette utilitaire séparée, pour conserver de la place sur la
disquette d'amorce et racine. Une fois la disquette d'amorce/racine
démarrée, elle est copiée sur le disque mémoire, laissant ainsi le
lecteur de disquette libre pour en monter une autre, la disquette
utilitaire. En général je la monte sur <code class="filename">/usr</code>.
</p><p>
La création d'une <span class="emphasis"><em>disquette utilitaire</em></span> est décrite
ci-dessous dans la <a class="xref" href="#utilitydisk" title="9.2. Construire un disque utilitaire">Section 9.2, « Construire un disque utilitaire »</a> . Il est probablement
souhaitable d'y maintenir une copie des mêmes versions d'utilitaires de
sauvegarde que ceux utilisés pour écrire les sauvegardes, histoire de ne
pas perdre de temps en essayant d'installer des versions qui ne peuvent
pas lire vos bandes de sauvegarde.
</p><p>
<span class="emphasis"><em>Vérifiez que vous y mettez les programmes suivants :</em></span>
<span class="command"><strong>init</strong></span>, <span class="command"><strong>getty</strong></span> ou un équivalent,
<span class="command"><strong>login</strong></span>, <span class="command"><strong>mount</strong></span>, un shell capable de
faire tourner votre script <span class="command"><strong>rc</strong></span>, un lien de
<span class="command"><strong>sh</strong></span> vers le shell en question.
</p><a id="d0e1450" class="indexterm"/><a id="d0e1454" class="indexterm"/><a id="d0e1458" class="indexterm"/><a id="d0e1462" class="indexterm"/></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e1465"/>4.3.4. <code class="filename">/lib</code></h4></div></div></div><p>
<a id="d0e1471" class="indexterm"/>
<a id="d0e1475" class="indexterm"/>
Vous mettez dans <code class="filename">/lib</code> les bibliothèques partagées
et les chargeurs nécessaires. Si les bibliothèques nécessaires ne sont pas
trouvées dans <code class="filename">/lib</code>, le système ne pourra pas
démarrer. Avec de la chance, un message vous expliquera pourquoi.
</p><p>
Pratiquement tous les programmes ont au moins besoin de la bibliothèque
<code class="filename">libc</code>,
<code class="filename">libc.so.</code><span class="emphasis"><em>N</em></span>,
<span class="emphasis"><em>N</em></span> étant le numéro de version courant. Vérifiez
votre répertoire <code class="filename">/lib</code>,
<code class="filename">libc.so.N</code> est en général un lien symbolique vers un
fichier avec un numéro de version complet :
</p><pre class="programlisting">
% ls -l /lib/libc.so*
-rwxr-xr-x 1 root root 4016683 Apr 16 18:48 libc-2.1.1.so*
lrwxrwxrwx 1 root root 13 Apr 10 12:25 libc.so.6 -> libc-2.1.1.so*
</pre><p>
Dans le cas présent, il vous faut <code class="filename">libc-2.1.1.so</code>.
Pour trouver les autres bibliothèques nécessaires, il faut lancer la
commande <span class="command"><strong>ldd</strong></span> sur tous les exécutables que vous
prévoyez de mettre sur la disquette. Par exemple :
</p><pre class="programlisting">
% ldd /sbin/mke2fs
libext2fs.so.2 => /lib/libext2fs.so.2 (0x40014000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0x40026000)
libuuid.so.1 => /lib/libuuid.so.1 (0x40028000)
libc.so.6 => /lib/libc.so.6 (0x4002c000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
</pre><p>
Tous les fichiers à droite sont nécessaires. Le fichier peut en
réalité être un lien symbolique.
</p><p>
Notez que certaines bibliothèques sont <span class="emphasis"><em>assez
grosses</em></span> et ne tiendront pas facilement sur votre système
racine. Par exemple, la <code class="filename">libc.so</code> citée précédemment
fait environ 4 méga-octets. Vous devrez probablement nettoyer les
bibliothèques avant de les copier sur votre système racine.
Reportez-vous à la <a class="xref" href="#slimfast" title="8. Réduire la taille du système racine">Section 8, « Réduire la taille du système racine »</a> pour plus d'informations.
</p><a id="d0e1528" class="indexterm"/><a id="d0e1531" class="indexterm"/><a id="d0e1534" class="indexterm"/><a id="d0e1537" class="indexterm"/><p>
Il faut également inclure dans <code class="filename">/lib</code> un chargeur
pour les bibliothèques. Il s'agira soit de <code class="filename">ld.so</code>
(pour les bibliothèques a.out), soit de <code class="filename">ld-linux.so</code>
(pour les bibliothèques ELF). Les versions récentes de
<span class="command"><strong>ldd</strong></span> vous indiquent de quel chargeur vous avez besoin,
comme dans l'exemple ci-dessus, mais de plus anciennes versions ne le
font pas forcément. Si vous ne savez pas duquel vous avez besoin,
utilisez la commande <span class="command"><strong>file</strong></span> sur la bibliothèque. Par
exemple :
</p><pre class="programlisting">
% file/lib/libc.so.4.7.2 /lib/libc.so.5.4.33 /lib/libc-2.1.1.so
/lib/libc.so.4.7.2: Linux/i386 demand-paged executable (QMAGIC), stripped
/lib/libc.so.5.4.33: ELF 32-bit LSB shared object, Intel 80386, version 1, stripped
/lib/libc-2.1.1.so: ELF 32-bit LSB shared object, Intel 80386, version 1, not stripped
</pre><p>
Le mot <span class="emphasis"><em>QMAGIC</em></span> indique que
<span class="emphasis"><em>4.7.2</em></span> est pour les bibliothèques a.out, et
<span class="emphasis"><em>ELF</em></span> que <span class="emphasis"><em>5.4.33</em></span> et
<span class="emphasis"><em>2.1.1</em></span> sont pour les ELF.
</p><a id="d0e1576" class="indexterm"/><a id="d0e1579" class="indexterm"/><p>
Copiez le ou les chargeurs dont vous avez besoin sur le système racine
que vous êtes en train de construire. Les bibliothèques et chargeurs
doivent être testés <span class="emphasis"><em>attentivement</em></span> avec les
exécutables inclus. Si le noyau ne peut charger une bibliothèque
nécessaire, il s'arrêtera en général brutalement, sans message d'erreur.
</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="PAMNSS"/>4.4. Utilisation de PAM et NSS</h3></div></div></div><p>
Votre système peut utiliser des bibliothèques chargées dynamiquement
mais invisibles pour <code class="filename">ldd</code>. Si vous ne les incluez pas,
vous risquez de ne pas pouvoir vous connecter ou utiliser votre
disquette d'amorce.
</p><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e1595"/>4.4.1. PAM (Pluggable Authentication Modules)</h4></div></div></div><p>
Si votre système utilise PAM (Pluggable Authentication Modules, soit
Modules Externes d'authentification), tenez-en compte dans la
construction de votre disque d'amorce, sans quoi vous ne pourrez pas
vous connecter. En quelques mots, PAM est une méthode modulaire
sophistiquée pour authentifier les utilisateurs et contrôler leur accès
aux services. Pour déterminer simplement si votre système utilise PAM,
cherchez dans le répertoire <code class="filename">/etc</code> de votre disque
dur un fichier <code class="filename">pam.conf</code> ou un répertoire
<code class="filename">pam.d</code> ; si l'un des deux existe, vous devez prévoir
un minimum de support pour PAM. (Vous pouvez aussi lancer
<code class="filename">ldd</code> sur votre exécutable <code class="filename">login</code>
; si la sortie contient <code class="filename">libpam.so</code>, vous avez besoin
de PAM.)
</p><p>
Heureusement, la sécurité est rarement un problème avec les disques
d'amorce étant donné que quiconque avec un accès physique à la
machine peut en général faire tout ce qu'il veut dessus. Vous pouvez
donc complètement désactiver PAM en créant un fichier
<code class="filename">/etc/pam.conf</code> simple sur votre système racine
contenant :
</p><pre class="programlisting">
OTHER auth optional /lib/security/pam_permit.so
OTHER account optional /lib/security/pam_permit.so
OTHER password optional /lib/security/pam_permit.so
OTHER session optional /lib/security/pam_permit.so
</pre><p>
Copiez également le fichier
<code class="filename">/lib/security/pam_permit.so</code> sur votre système
racine. Cette bibliothèque ne fait qu'environ 8 ko et ne coûte donc
pas grand chose.
</p><p>
Notez bien que cette configuration donne à tous un accès complet aux
fichiers et services de votre machine. Si vous avez des impératifs de
sécurité sur votre disque d'amorce pour une raison ou une autre, vous
devrez copier une partie, voire l'ensemble de la configuration PAM de
votre disque dur vers le système racine. Lisez bien attentivement la
documentation de PAM, et copiez toutes les bibliothèques nécessaires
depuis <code class="filename">/lib/security</code> vers votre système racine.
</p><p>
Vous devez aussi inclure <code class="filename">/lib/libpam.so</code> sur le
disque racine. Mais vous le saviez déjà puisque vous avez lancé
<span class="command"><strong>ldd</strong></span> sur <code class="filename">/bin/login</code> qui vous a
montré cette dépendance.
</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="d0e1646"/>4.4.2. NSS (Name Service Switch)</h4></div></div></div><p>
Si vous utilisez <span class="emphasis"><em>glibc</em></span> (appelée aussi
<span class="emphasis"><em>libc6</em></span>), vous devez tenir compte des services de
noms sans quoi vous ne pourrez pas vous connecter. Le fichier
<code class="filename">/etc/nsswitch.conf</code> contrôle les recherches dans les
bases de données pour divers services. Si vous ne comptez pas accéder à
des services du réseau (tels que des recherches DNS ou NIS), un simple
fichier <code class="filename">nsswitch.conf</code> comme suit suffit :
</p><pre class="programlisting">
passwd: files
shadow: files
group: files
hosts: files
services: files
networks: files
protocols: files
rpc: files
ethers: files
netmasks: files
bootparams: files
automount: files
aliases: files
netgroup: files
publickey: files
</pre><p>
Ce fichier spécifie que tous les services ne sont fournis que par des
fichiers locaux de la machine. Vous devez aussi inclure le fichier
<code class="filename">/lib/libnss_files.so.X</code>, où X vaut 1 pour une glibc
2.0 et 2 pour une glibc 2.1. Cette bibliothèque est chargée
dynamiquement pour gérer les recherches dans les fichiers.
</p><p>
Si vous comptez accéder au réseau depuis votre disque d'amorce, vous
pouvez créer un fichier <code class="filename">nsswitch.conf</code> plus complet.
Voir la page de manuel de <code class="filename">nsswitch</code> pour plus de
détails. N'oubliez pas d'inclure un fichier
<code class="filename">/lib/libnss_</code><span class="emphasis"><em>service</em></span><code class="filename">.so.1
</code>
pour chaque <span class="emphasis"><em>service</em></span> que vous ajoutez.
</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e1688"/>4.5. Modules</h3></div></div></div><p>
<a id="d0e1693" class="indexterm"/>
Si votre noyau est modulaire, vous devez savoir quels modules vous
voudrez charger depuis votre disque d'amorce une fois le système
démarré. Il vous faudra inclure les modules <span class="command"><strong>ftape</strong></span> et
<span class="command"><strong>zftape</strong></span> si vos sauvegardes sont sur bandes, les
modules pour périphériques SCSI si vous en avez, et éventuellement ceux
pour le support PPP ou SLIP si vous souhaitez accéder au réseau en cas
d'urgence.
</p><a id="d0e1703" class="indexterm"/><p>
Ces modules doivent être placés dans <code class="filename">/lib/modules</code>.
Vous devez aussi inclure <span class="command"><strong>insmod</strong></span>,
<span class="command"><strong>rmmod</strong></span> et <span class="command"><strong>lsmod</strong></span>. Si vous souhaitez
charger les modules automatiquement, prenez <span class="command"><strong>modprobe</strong></span>,
<span class="command"><strong>depmod</strong></span> et <span class="command"><strong>swapout</strong></span>. Et si vous
utilisez <span class="command"><strong>kerneld</strong></span>, prenez le avec son fichier de
configuration <code class="filename">/etc/conf.modules</code>.
</p><p>
Néanmoins, le principal avantage d'utiliser les modules est que vous
pouvez déplacer les modules non essentiels sur un disque utilitaire et
ne les charger que lorsque c'est nécessaire, ce qui prend alors moins de
place sur le disque racine. Si vous devez gérer beaucoup de
périphériques, il vaut mieux procéder de cette manière plutôt que de
construire un seul gros noyau contenant tous les gestionnaires.
</p><a id="d0e1738" class="indexterm"/><p>
<span class="emphasis"><em>Attention, pour démarrer avec un système de fichiers ext2
compressé, vous devez avoir inclus le support pour disque mémoire et
ext2.</em></span> Ils ne peuvent être installés par des modules.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e1746"/>4.6. Quelques ultimes détails</h3></div></div></div><p>
Certains programmes, tels que <span class="command"><strong>login</strong></span>, se plaignent si
le fichier <code class="filename">/var/run/utmp</code> et le répertoire
<code class="filename">/var/log</code> n'existent pas.
</p><a id="d0e1760" class="indexterm"/><p>
Donc :
</p><pre class="programlisting">
mkdir -p /mnt/var/{log,run}
touch /mnt/var/run/utmp
</pre><p>
Enfin, après avoir installé toutes les bibliothèques dont vous avez
besoin, lancez <span class="command"><strong>ldconfig</strong></span> pour refabriquer
<code class="filename">/etc/ld.so.cache</code> sur le système racine. Le cache
indique au loader où trouver les bibliothèques. Pour refabriquer
<code class="filename">ld.so.cache</code>, lancez la commande suivante :
</p><a id="d0e1779" class="indexterm"/><a id="d0e1783" class="indexterm"/><pre class="programlisting">
ldconfig -r /mnt
</pre></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="wrappingitup"/>4.7. C'est dans la poche</h3></div></div></div><p>
Une fois le système racine construit, démontez-le, copiez-le dans un
fichier et compressez-le :
</p><pre class="programlisting">
umount /mnt
dd if=PÉRIPHÉRIQUE bs=1k | gzip -v9 > rootfs.gz
</pre><p>
Une fois cette étape effectuée, vous obtenez un fichier
<code class="filename">rootfs.gz</code> contenant votre système racine compressé.
Vérifiez sa taille pour être sûr qu'il tient sur une disquette. Si ça
n'est pas le cas vous devrez y retourner pour supprimer certains
fichiers. La <a class="xref" href="#slimfast" title="8. Réduire la taille du système racine">Section 8, « Réduire la taille du système racine »</a> vous donnera des astuces pour y
arriver.
</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e1803"/>5. Choisir un noyau</h2></div></div></div><p>
<a id="d0e1808" class="indexterm"/>
Vous avez maintenant un système de fichiers racine complet et
compressé. La prochaine étape consiste à construire ou choisir un
noyau. Dans la plupart des cas, vous pouvez copier votre noyau courant
et démarrer la disquette avec. Cependant dans certains cas, vous
voudrez peut-être construire un noyau différent.
</p><p>
La taille peut jouer. Si vous faites une disquette d'amorce/racine
unique, le noyau va être un des plus gros fichiers de la disquette et
il vaut donc mieux essayer d'en réduire la taille au maximum. Pour ce
faire, construisez-le avec le minimum de fonctionnalités nécessaires
au bon fonctionnement du système cible. Cela implique de retirer tout
ce dont vous n'avez pas besoin. Le support réseau est un bon candidat,
tout comme le support pour tout type de disque et de périphérique dont
vous n'avez pas l'usage sur un système lancé par disquette. Comme
indiqué précédemment, votre noyau doit contenir le support pour disque
mémoire et ext2.
</p><p>
Une fois les fonctionnalités nécessaires déterminées, vous devez trouver
ce qu'il faut rajouter. L'utilisation la plus courante d'une disquette
d'amorce/racine est l'examen et la récupération d'un système racine
endommagé, ce qui peut nécessiter le support de certaines
fonctionnalités supplémentaires dans le noyau. Par exemple, si vos
sauvegardes sont stockées sur bande avec <span class="command"><strong>ftape</strong></span> pour
gérer l'accès au lecteur de bande et que vous perdez votre disque racine
ainsi que ceux contenant <span class="command"><strong>ftape</strong></span>, vous ne pourrez plus
récupérer vos sauvegardes depuis les bandes. Vous devrez réinstaller
Linux, rapatrier et réinstaller <span class="command"><strong>ftape</strong></span>, puis essayer
de lire vos sauvegardes.
</p><p>
Ce que je veux dire, c'est que quelle que soit la méthode d'E/S que
vous utilisez au niveau du noyau pour les sauvegardes, elle doit se
trouver aussi sur votre noyau d'amorce.
</p><a id="d0e1827" class="indexterm"/><p>
La procédure de construction d'un noyau est décrite dans la
documentation fournie avec celui-ci. C'est assez simple à suivre, vous
pouvez donc commencer par faire un tour dans
<code class="filename">/usr/src/linux</code>. Si vous avez des problèmes pour
construire un noyau, vous ne devriez probablement pas essayer de faire
de disquette d'amorce/racine de toute manière. Pensez à compresser le
noyau avec <span class="command"><strong>make zImage</strong></span>.
</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e1838"/>6. Assemblage et fabrication de la ou des disquettes</h2></div></div></div><p>
Vous avez maintenant un noyau et un système de fichiers compressé. Si
vous construisez un disque d'amorce/racine unique, vérifiez que leur
taille ne dépasse pas celle du disque. Si vous avez un découpage sur
deux disquettes, vérifiez que la taille du système racine ne dépasse
pas celle de la disquette.
</p><p>
Il vous faut choisir entre l'utilisation de <span class="command"><strong>LILO</strong></span> pour
démarrer le noyau du disque d'amorce et la copie du noyau directement
sur la disquette d'amorce, sans <span class="command"><strong>LILO</strong></span>. L'avantage de
<span class="command"><strong>LILO</strong></span> est la possibilité de passer des paramètres au
noyau, ce qui peut être nécessaire pour initialiser votre matériel
(Regardez le fichier <code class="filename">/etc/lilo.conf</code> sur votre
machine. S'il existe et contient une ligne du type
<span class="emphasis"><em>append=…</em></span>, vous avez besoin de passer des
paramètres). Son inconvénient est une complexité accrue dans la
construction du disque d'amorce, ainsi qu'une place occupée sur la
disquette légèrement plus importante. Vous devrez configurer un petit
système de fichier séparé que nous appellerons le <span class="emphasis"><em>système
noyau</em></span>, où vous transférerez le noyau ainsi que quelques
autres fichiers nécessaires à <span class="command"><strong>LILO</strong></span>.
</p><a id="d0e1866" class="indexterm"/><a id="d0e1870" class="indexterm"/><a id="d0e1873" class="indexterm"/><p>
Si vous décidez d'utiliser <span class="command"><strong>LILO</strong></span>, continuez la lecture
; si par contre vous voulez copier le noyau directement sur la
disquette, passez directement à la <a class="xref" href="#withoutlilo" title="6.2. Transfert du noyau sans LILO">Section 6.2, « Transfert du noyau sans LILO »</a>.
</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="usinglilo"/>6.1. Transfert du noyau avec LILO</h3></div></div></div><a id="d0e1886" class="indexterm"/><p>
La première chose à faire est de vérifier que vous avez une version
récente de <span class="command"><strong>LILO</strong></span>. Ensuite, il faut créer un petit
fichier de configuration pour <span class="command"><strong>LILO</strong></span>. Il doit
ressembler à :
</p><pre class="programlisting">
boot =/dev/fd0
install =/boot/boot.b
map =/boot/map
read-write
backup =/dev/null
compact
image = NOYAU
label = Bootdisk
root =/dev/fd0
</pre><p>
Pour la signification de ces paramètres, voir la documentation
utilisateur de <span class="command"><strong>LILO</strong></span>. Il vous faudra probablement
aussi rajouter une ligne <span class="emphasis"><em>append=…</em></span> à ce fichier,
comme dans le fichier <code class="filename">/etc/lilo.conf</code> de votre
disque dur.
</p><a id="d0e1911" class="indexterm"/><p>
Sauvez-le en tant que <code class="filename">bdlilo.conf</code>.
</p><p>
Vous devez maintenant créer un petit système de fichier, que nous
appellerons <span class="emphasis"><em>système noyau</em></span>, pour le différencier du
système racine.
</p><p>
Tout d'abord, calculez la taille que celui-ci doit faire. Prenez la
taille de votre noyau en blocs (la taille donnée par <span class="command"><strong>ls -s
NOYAU</strong></span> et
ajoutez 50. Cinquante blocs sont en gros la taille nécessaire aux
i-nœuds ainsi qu'aux autres fichiers. Vous pouvez calculer le nombre
exact si vous voulez, ou simplement utiliser 50. Si vous créez un
ensemble avec deux disques, vous pouvez carrément surestimer l'espace
nécessaire puisque le disque n'est utilisé que par le noyau de toute
manière. Appelez ce nombre <span class="emphasis"><em>BLOCS_NOYAU</em></span>.
</p><a id="d0e1933" class="indexterm"/><p>
Mettez une disquette dans le lecteur (pour simplifier, supposons qu'il
s'agit de <code class="filename">/dev/fd0</code>) et créez le système noyau ext2
dessus :
</p><pre class="programlisting">
mke2fs -N 24 -m 0 /dev/fd0 BLOCS_NOYAU
</pre><a id="d0e1944" class="indexterm"/><p>
L'option <code class="option">-N 24</code> indique que l'on souhaite 24 i-nœuds,
ce qui est largement suffisant pour ce système de fichiers. Ensuite,
montez le système, supprimez le répertoire
<code class="filename">lost+found</code> et créez des répertoire
<code class="filename">dev</code> et <code class="filename">boot</code> pour
<span class="command"><strong>LILO</strong></span> :
</p><pre class="programlisting">
mount /dev/fd0 /mnt
rm -rf /mnt/lost+found
mkdir /mnt/{boot,dev}
</pre><p>
Ensuite, créez les périphériques <code class="filename">/dev/null</code> et
<code class="filename">/dev/fd0</code>. Au lieu de chercher leurs numéros de
périphériques, vous pouvez simplement les copier depuis votre disque
dur avec l'option <code class="option">-R</code> :
</p><pre class="programlisting">
cp -R /dev/{null,fd0} /mnt/dev
</pre><p>
<span class="command"><strong>LILO</strong></span> a besoin d'une copie de son chargeur d'amorce,
<code class="filename">boot.b</code>, que vous pouvez trouver sur votre disque
dur. Il est d'habitude dans le répertoire <code class="filename">/boot</code>.
</p><pre class="programlisting">
cp /boot/boot.b /mnt/boot
</pre><p>
Enfin, copiez le fichier de configuration de <span class="command"><strong>LILO</strong></span> que
vous avez créé précédemment avec votre noyau. Les deux peuvent être
placés dans le répertoire racine :
</p><pre class="programlisting">
cp bdlilo.conf NOYAU /mnt
</pre><p>
Tout ce dont <span class="command"><strong>LILO</strong></span> a besoin est maintenant sur le
système noyau, vous pouvez donc le lancer. Le paramètre
<code class="option">-r</code> de <span class="command"><strong>LILO</strong></span> est utilisé pour
installer le chargeur sur une autre racine que la courante :
</p><a id="d0e2010" class="indexterm"/><pre class="programlisting">
lilo -v -C bdlilo.conf -r /mnt
</pre><p>
<span class="command"><strong>LILO</strong></span> doit s'exécuter sans erreur, après quoi le
système noyau devrait ressembler à :
</p><pre class="programlisting">
total 361
1 -rw-r--r-- 1 root root 176 Jan 10 07:22 bdlilo.conf
1 drwxr-xr-x 2 root root 1024 Jan 10 07:23 boot/
1 drwxr-xr-x 2 root root 1024 Jan 10 07:22 dev/
358 -rw-r--r-- 1 root root 362707 Jan 10 07:23 vmlinuz
boot:
total 8
4 -rw-r--r-- 1 root root 3708 Jan 10 07:22 boot.b
4 -rw------- 1 root root 3584 Jan 10 07:23 map
dev:
total 0
0 brw-r----- 1 root root 2, 0 Jan 10 07:22 fd0
0 crw-r--r-- 1 root root 1, 3 Jan 10 07:22 null
</pre><a id="d0e2023" class="indexterm"/><p>
Ne vous inquiétez pas si la taille des fichiers n'est pas exactement
la même que la votre.
</p><p>
Laissez maintenant le disque dans le lecteur et allez à la
<a class="xref" href="#ramdiskword" title="6.3. Mise en place du mot disque mémoire">Section 6.3, « Mise en place du mot disque mémoire »</a>.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="withoutlilo"/>6.2. Transfert du noyau sans LILO</h3></div></div></div><p>
Si vous n'utilisez <span class="emphasis"><em>pas</em></span> <span class="command"><strong>LILO</strong></span>,
transférez le noyau sur le disque d'amorce avec la commande
<span class="command"><strong>dd</strong></span> :
</p><pre class="programlisting">
% dd if=NOYAU of=/dev/fd0 bs=1k
353+1 records in
353+1 records out
</pre><p>
Dans ce exemple, <span class="command"><strong>dd</strong></span> a écrit 353 enregistrements
complets, plus 1 partiel, ce qui signifie que le noyau occupe les 354
premiers blocs de la disquette. Appelez ce nombre
<span class="emphasis"><em>BLOCS_NOYAU</em></span> et pensez à l'utiliser dans la section
suivante.
</p><a id="d0e2056" class="indexterm"/><p>
Enfin, indiquez que le périphérique racine doit être la disquette
elle-même, et que le noyau doit être chargé en lecture/écriture.
</p><pre class="programlisting">
rdev /dev/fd0 /dev/fd0
rdev -R /dev/fd0 0
</pre><a id="d0e2064" class="indexterm"/><p>
Attention à bien utiliser un <code class="option">-R</code> majuscule dans la
seconde commande <span class="command"><strong>rdev</strong></span>.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="ramdiskword"/>6.3. Mise en place du mot disque mémoire</h3></div></div></div><p>
Le <span class="emphasis"><em>mot disque mémoire</em></span> situé dans l'image du noyau
permet de spécifier où se trouve le système racine, ainsi que d'autres
options. Le mot peut être lu et modifié avec la commande
<span class="command"><strong>rdev</strong></span>, et sa valeur s'interprète de la manière
suivante :
</p><pre class="programlisting">
bits 0-10 : Décalage jusqu'au début du disque mémoire, en blocs
de 1024 octets
bits 11-13 : Inutilisé
bit 14 : Drapeau indiquant s'il faut charger un disque mémoire
bit 15 : Drapeau pour faire une pause avant de charger le
système racine
</pre><p>
Si le bit 15 est mis à 1, le noyau vous demandera au moment du démarrage
de changer la disquette dans le lecteur. C'est nécessaire si vous
utilisez un ensemble de deux disques. Il y a deux cas, suivant que vous
créez une disquette d'amorce/racine unique ou un ensemble
« amorce+racine » séparé.
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
Si vous créez un disque unique, le système racine compressé sera placé
juste après le noyau, et donc le décalage sera le premier bloc libre
(qui doit être au même endroit que <span class="emphasis"><em>BLOCS_NOYAU</em></span>). Le
bit 14 sera mis à 1, et le bit 15 à 0.
</p><a id="d0e2098" class="indexterm"/><p>
Supposons par exemple que vous construisiez un disque unique dont le
système racine doit commencer au bloc 253 (valeur décimale). Le mot
disque mémoire devrait valoir 253 (toujours en décimal) avec le bit 14 à
1 et le bit 15 à 0. Pour calculer sa valeur vous pouvez simplement
additionner les valeurs décimales. 253 + (2^14) = 253 + 16384 = 16637.
Si vous ne comprenez pas d'où sort ce nombre, entrez-le dans une
calculatrice scientifique et convertissez-le en binaire.
</p></li><li class="listitem"><p>
Si vous créez par contre un ensemble de deux disques, le système racine
sera au bloc zéro du second disque, et le décalage sera donc zéro. Le
bit 14 sera mis à 1 tout comme le bit 15. La valeur décimale sera donc
de 2^14 + 2^15 = 49152 dans ce cas.
</p></li></ol></div><a id="d0e2107" class="indexterm"/><a id="d0e2111" class="indexterm"/><a id="d0e2114" class="indexterm"/><p>
Après avoir bien calculé la valeur du mot disque mémoire, écrivez-le
avec <span class="command"><strong>rdev -r</strong></span>. Attention à utiliser la valeur
<span class="emphasis"><em>décimale</em></span>. Si vous utilisez <span class="command"><strong>LILO</strong></span>,
l'argument de <span class="command"><strong>rdev</strong></span> doit être le <span class="emphasis"><em>chemin
d'accès au noyau monté</em></span>, c'est à dire
<code class="filename">/mnt/vmlinuz</code> ; si vous avez copié le noyau avec
<span class="command"><strong>dd</strong></span>, utilisez à la place le nom du périphérique du
lecteur de disquette (c'est à dire <code class="filename">/dev/fd0</code>).
</p><pre class="programlisting">
rdev -r NOYAU_OU_LECTEUR_DE_DISQUETTE VALEUR
</pre><p>
Si vous avez utilisé <span class="command"><strong>LILO</strong></span>, démontez maintenant la
disquette.
</p><p>
Ne croyez pas ce que dit la page de manuel de
<span class="command"><strong>rdev</strong></span>/<span class="command"><strong>ramsize</strong></span> à propos de la taille
du disque mémoire. Cette page est obsolète. À partir du noyau 2.0, le
mot disque mémoire ne détermine plus la taille du disque mémoire ; au
lieu de cela, ce mot est déterminé à partir du tableau donné au début de
cette section. Pour une explication détaillée, voir le fichier de
documentation <code class="filename">ramdisk.txt</code> ou
<a class="ulink" href="http://www.tamacom.com/tour/linux/S/9075.html" target="_top">
http://www.tamacom.com/tour/linux/S/9075.html</a>.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2166"/>6.4. Transfert du système racine</h3></div></div></div><p>
La dernière étape concerne le transfert du système racine.
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Si le système racine doit être placé sur le même disque
que le noyau, transférez-le avec <span class="command"><strong>dd</strong></span> et son option
<code class="option">seek</code>, qui indique combien de blocs il faut sauter :
</p><pre class="programlisting">
dd if=rootfs.gz of=/dev/fd0 bs=1k seek=BLOCS_NOYAU
</pre></li><li class="listitem"><p>
Si le système racine doit être placé sur un second disque, sortez la
première disquette, mettez la seconde dans le disque, puis transférez-y
le système racine :
</p><pre class="programlisting">
dd if=rootfs.gz of=/dev/fd0 bs=1k
</pre></li></ul></div><p>
Bravo, vous avez fini ! <span class="emphasis"><em>Vous devriez toujours tester un
disque d'amorce avant de le ranger jusqu'à la prochaine
urgence !</em></span> S'il n'arrive pas à démarrer, continuez à lire.
</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="troubleshooting"/>7. En cas de problème, ou l'agonie de la défaite</h2></div></div></div><p>
<a id="d0e2198" class="indexterm"/>
Lorsque l'on crée des disques d'amorce, les premiers essais n'amorcent
souvent pas la machine. En général, la méthode utilisée consiste à
construire le disque racine à partir de composants de votre système
actuel pour essayer d'obtenir que le système de la disquette commence
à afficher des messages sur la console. Une fois qu'il a commencé à
vous parler, la bataille est presque gagnée puisque vous pouvez voir
de quoi il se plaint et corriger les problèmes un à un jusqu'à ce que
le système fonctionne normalement. Si le système s'arrête brutalement
sans explication, il peut être difficile d'en trouver la cause. Pour
que le système en arrive au point où il commence à afficher ses
messages, un certain nombre de composants doivent être présents et
bien configurés. La procédure à suivre pour déterminer les raisons du
silence de votre système est la suivante :
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Si vous voyez un message du genre :
</p><pre class="programlisting">
Kernel panic: VFS: Unable to mount root fs on XX:YY
</pre><p>
C'est un problème courant qui ne peut avoir que quelques causes. Tout
d'abord, cherchez le périphérique <span class="emphasis"><em>XX:YY</em></span> dans la
liste de codes des périphériques dans le fichier
<code class="filename">/usr/src/linux/Documentation/devices.txt</code> ;
s'agit-il du bon périphérique racine ? Si ce n'est pas le bon, vous
n'avez sans doute pas lancé <span class="command"><strong>rdev -R</strong></span>, ou alors sur la
mauvaise image. Si le code du périphérique est correct, vérifiez
attentivement quels gestionnaires de périphériques ont été compilés dans
le noyau. Assurez-vous que le support pour le lecteur de disquettes, les
disques mémoires et le système de fichiers ext2 sont bien inclus ;
</p></li><li class="listitem"><p>Si vous voyez plusieurs erreurs du genre :
</p><pre class="programlisting">
end_request: I/O error, dev 01:00 (ramdisk), sector NNN
</pre><p>
Il s'agit d'une erreur d'E/S du périphérique disque mémoire, la plupart
du temps à cause du noyau qui tente d'écrire au-delà de la fin du
périphérique. Le disque mémoire est trop petit pour supporter la
totalité du système de fichiers. Vérifiez les message d'initialisation
du noyau pour trouver une ligne du type :
</p><pre class="programlisting">
Ramdisk driver initialized : 16 ramdisks of 4096K size
</pre><p>
Vérifiez la taille du système de fichiers
<span class="emphasis"><em>compressé</em></span>. Si le disque mémoire n'est pas assez
grand, il faut l'agrandir.
</p></li><li class="listitem"><p>Vérifiez que le disque racine contient bien les
répertoires que vous croyez. Il est facile de se tromper de niveau
d'arborescence et de se retrouver avec quelque chose du genre
<code class="filename">/racine/bin</code> au lieu de <code class="filename">/bin</code>
sur votre disquette racine ;
</p></li><li class="listitem"><p>Vérifiez qu'il y a un <code class="filename">/lib/libc.so</code>
avec le même lien que celui présent dans le répertoire
<code class="filename">/lib</code> de votre disque dur ;
<a id="d0e2251" class="indexterm"/>
</p></li><li class="listitem"><p>Vérifiez que tous les liens symboliques du répertoire
<code class="filename">/dev</code> de votre système actuel existent également sur
le système racine, quand ces liens pointent vers des périphériques inclus
sur la disquette racine. Notamment, les liens vers
<code class="filename">/dev/console</code> sont souvent essentiels ;
<a id="d0e2265" class="indexterm"/>
</p></li><li class="listitem"><p>Vérifiez que vous avez inclus les fichiers
<code class="filename">/dev/tty1</code>, <code class="filename">/dev/null</code>,
<code class="filename">/dev/zero</code>, <code class="filename">/dev/mem</code>,
<code class="filename">/dev/ram</code> et <code class="filename">/dev/kmem</code> ;
</p></li><li class="listitem"><p>Vérifiez la configuration de votre noyau : le support
pour toutes les ressources nécessaires jusqu'à l'invite de connexion
doit être directement inclus et non pas sous forme de modules.
<span class="emphasis"><em>Le support des disques mémoires et de ext2 doivent donc être
présents dans le noyau</em></span> ;
</p></li><li class="listitem"><p>Vérifiez que le périphérique racine et le disque mémoire
sont correctement configurés dans le noyau.
</p></li></ul></div><p>
Une fois ces points généraux vérifiés, vous pouvez vous pencher sur
ces points plus précis :
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Vérifiez qu'<span class="command"><strong>init</strong></span> est présent en tant
que <code class="filename">/sbin/init</code> ou <code class="filename">/bin/init</code>,
et qu'il est exécutable ;
</p></li><li class="listitem"><p>Lancez <span class="command"><strong>ldd init</strong></span> pour vérifier les
bibliothèques
<a id="d0e2320" class="indexterm"/>
d'<span class="command"><strong>init</strong></span>. Il n'y a normalement que
<code class="filename">libc.so</code>, mais sait-on jamais… Vérifiez que vous
avez bien inclus les bibliothèques et leurs chargeurs ;
</p></li><li class="listitem"><p>Vérifiez que vous avez le bon chargeur pour vos
bibliothèques : <code class="filename">ld.so</code> pour a.out et
<code class="filename">ld-linux.so</code> pour ELF ;
<a id="d0e2340" class="indexterm"/>
</p></li><li class="listitem"><p>Vérifiez le contenu de <code class="filename">/etc/inittab</code>
sur la disquette d'amorce et ses éventuels appels à
<span class="command"><strong>getty</strong></span> (ou tout autre programme du genre, tel que
<span class="command"><strong>agetty</strong></span>, <span class="command"><strong>mgetty</strong></span> ou
<span class="command"><strong>getty_ps</strong></span>).
</p><a id="d0e2362" class="indexterm"/><a id="d0e2366" class="indexterm"/><p>
Comparez-le plusieurs fois avec l'<code class="filename">inittab</code> de votre
disque dur. Vérifiez les pages de manuel du programme que vous utilisez
pour être sûr de sa cohérence. <code class="filename">inittab</code> peut être le
morceau le plus difficile en raison de sa syntaxe et du contenu qui
dépendent de la version d'<span class="command"><strong>init</strong></span> utilisée et de la
nature du système. La seule manière de s'en débarrasser, c'est de lire
les pages de manuel d'<span class="command"><strong>init</strong></span> et
<code class="filename">inittab</code> afin de comprendre exactement ce que fait
le système lorsqu'il démarre. Vérifiez que
<code class="filename">/etc/inittab</code> contient bien une entrée concernant
l'initialisation du système. Elle doit contenir une commande lançant le
script d'initialisation du système, qui doit lui aussi exister ;
</p></li><li class="listitem"><p>Comme pour <span class="command"><strong>init</strong></span>, lancez
<span class="command"><strong>ldd</strong></span> sur votre <span class="command"><strong>getty</strong></span> pour voir ses
besoins, et vérifiez que les bibliothèques et chargeurs nécessaires sont
présents sur le système racine ;
</p></li><li class="listitem"><p>Assurez-vous d'avoir inclus un exécutable de shell (par
exemple <span class="command"><strong>bash</strong></span> ou <span class="command"><strong>ash</strong></span>) capable de
faire tourner tous vos scripts <span class="command"><strong>rc</strong></span> ;
<a id="d0e2414" class="indexterm"/>
</p></li><li class="listitem"><p>Si vous avez un fichier
<code class="filename">/etc/ld.so.cache</code> sur le disque de secours,
refabriquez-le (le fichier, pas le disque).
<a id="d0e2424" class="indexterm"/>
</p></li></ol></div><p>
Si <span class="command"><strong>init</strong></span> démarre et que vous obtenez un message du type :
</p><pre class="programlisting">
Id xxx respawning too fast: disabled for 5 minutes
</pre><a id="d0e2436" class="indexterm"/><p>
cela provient d'<span class="command"><strong>init</strong></span> et indique généralement que
<span class="command"><strong>getty</strong></span> ou <span class="command"><strong>login</strong></span> meurt aussitôt
après son lancement.
</p><a id="d0e2452" class="indexterm"/><a id="d0e2456" class="indexterm"/><a id="d0e2460" class="indexterm"/><p>
Vérifiez les exécutables de <span class="command"><strong>getty</strong></span> et
<span class="command"><strong>login</strong></span>, et les bibliothèques dont ils dépendent.
Vérifiez que les appels depuis <code class="filename">/etc/inittab</code> sont
corrects. Si vous obtenez d'étranges messages de
<span class="command"><strong>getty</strong></span>, cela peut signifier que les arguments dans
<code class="filename">/etc/inittab</code> sont faux. Les options des programmes
<span class="command"><strong>getty</strong></span> sont variables ; on signale que les arguments
sont parfois incompatibles entre deux versions
d'<span class="command"><strong>agetty</strong></span>.
</p><a id="d0e2487" class="indexterm"/><p>
Si vous obtenez une invite de login et qu'après avoir entré un nom de
login valide, le système vous en demande un autre aussitôt, le problème
peut venir de PAM ou NSS. Lisez la <a class="xref" href="#PAMNSS" title="4.4. Utilisation de PAM et NSS">Section 4.4, « Utilisation de PAM et NSS »</a>. Le
problème peut aussi venir du fait que vous utilisez les <span class="emphasis"><em>mots
de passe cachés</em></span> et que vous n'avez pas copié le fichier
<code class="filename">/etc/shadow</code> sur votre disque d'amorce.
</p><a id="d0e2501" class="indexterm"/><p>
Si vous essayez de lancer un exécutable tel que <span class="command"><strong>df</strong></span>
présent sur votre disque de secours, mais n'obtenez qu'un message du
type : <span class="emphasis"><em>df: not found</em></span>, vérifiez deux chose : (1) que
le répertoire contenant le binaire est bien dans votre PATH, et (2) que
vous avez les bibliothèques (et chargeurs) nécessaires au programme.
</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="slimfast"/>8. Réduire la taille du système racine</h2></div></div></div><p>
Parfois un système racine est trop gros pour tenir sur une disquette,
même après compression. Voici quelques techniques pour réduire sa
taille, citées par ordre décroissant d'efficacité :
</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="high-density"/>8.1. Augmentez la densité du disque</h3></div></div></div><p>
Par défaut, les disquettes sont formatées à 1440 ko, mais des formats
plus denses existent. <code class="filename">fdformat</code> peut formater des
disques avec les tailles suivantes : 1600, 1680, 1722, 1743, 1760, 1840
et 1920. Lisez la page de manuel de <code class="filename">fdformat</code> ainsi
que <code class="filename">/usr/src/linux/Documentation/devices.txt</code>.
</p><p>
Mais quelles densités/géométries votre machine peut-elle supporter ? Voici des
réponses (légèrement modifiées) de Alain Knaff, l'auteur de
<span class="command"><strong>fdutils</strong></span>.
</p><div class="blockquote"><table border="0" class="blockquote" summary="Block quote"><tr><td width="10%" valign="top"> </td><td width="80%" valign="top"><p>
C'est plus le problème du <acronym class="acronym">BIOS</acronym> que du format physique
des disquettes. Si le <acronym class="acronym">BIOS</acronym> décide que tous les
numéros de secteurs supérieurs à 18 sont non valides, alors on ne peut
pas y faire grand chose. En effet, à moins de désassembler le
<acronym class="acronym">BIOS</acronym>, le seul moyen de trouver la bonne valeur est en
tâtonnant. Quoiqu'il en soit, si le <acronym class="acronym">BIOS</acronym> supporte les
disques ED (grande densité : 36 secteurs/piste et 2,88 Mo), il y a des
chances pour que les disquettes de 1722 ko soient également supportées.
</p><p>
Les disquettes super-formatées avec plus de 21 secteurs par piste ne
sont vraisemblablement pas amorçables : en fait, celles qui
utilisent des secteurs de tailles non standard (1024 octets par
secteur au lieu de 512, par exemple) ne sont vraisemblablement pas
démarrables. Il devrait être malgré tout possible d'écrire un programme
de démarrage du secteur pour contourner cela. Si je me souviens bien, le
programme <span class="command"><strong>DOS 2m</strong></span> en est capable, ainsi que les
programmes <span class="command"><strong>XDF</strong></span> de <acronym class="acronym">OS/2</acronym>.
</p><p>
Certains <acronym class="acronym">BIOS</acronym> clament artificiellement que tout
secteur supérieur à 18 est certainement défectueux. Comme les disquettes
de 1722 ko utilisent des secteurs supérieurs à 21, elles ne devraient
pas être amorçables. Le meilleur moyen de tester serait de formater une
disquette DOS ou syslinux en 1722 ko et de la rendre amorçable. Si
vous utilisez <span class="command"><strong>LILO</strong></span>, n'utilisez pas l'option
<code class="option">linear</code> (sans quoi <span class="command"><strong>LILO</strong></span> penserait que
le format par défaut de la disquette est de 18 secteurs par piste, et la
disquette ne démarrera pas même si le <acronym class="acronym">BIOS</acronym> la
supporte).
</p></td><td width="10%" valign="top"> </td></tr><tr><td width="10%" valign="top"> </td><td colspan="2" align="right" valign="top">--<span class="attribution">Alain Knaff</span></td></tr></table></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2582"/>8.2. Remplacer les utilitaires indispensables par BusyBox</h3></div></div></div><p>
La plupart de l'espace disque d'un système de fichiers est consommé par
des utilitaires indispensables tels que <span class="command"><strong>cat</strong></span>,
<span class="command"><strong>chmod</strong></span>, <span class="command"><strong>cp</strong></span>, <span class="command"><strong>dd</strong></span>,
<span class="command"><strong>df</strong></span>, et cætera. Le projet <span class="emphasis"><em>BusyBox</em></span>
permet de fournir un remplacement à ces utilitaires indispensables.
BusyBox fournit un seul fichier monolithique exécutable,
<span class="command"><strong>/bin/busybox</strong></span>, d'environ 150 ko, qui implémente les
fonctions de ces utilitaires. Vous pouvez créer des liens symboliques à
partir de différents programmes vers cet exécutable ;
<span class="command"><strong>busybox</strong></span> voit comment il a été appelé et invoque le
code correcte. BusyBox inclut même un shell basique. BusyBox est
disponible sous forme de paquetage binaire pour plusieurs distributions,
et le code source est disponible sur le site de BusyBox.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2611"/>8.3. Changez de shell</h3></div></div></div><p> Certains shells populaires sous Linux, tels que
<span class="command"><strong>bash</strong></span> et <span class="command"><strong>tcsh</strong></span>, sont gros et
nécessitent de nombreuses bibliothèques. Si vous n'utilisez pas le shell
de BusyBox, vous devriez quand même songer à remplacer le shell.
D'autres options plus légères existent, telles que
<span class="command"><strong>ash</strong></span>, <span class="command"><strong>lsh</strong></span>, <span class="command"><strong>kiss</strong></span>
et <span class="command"><strong>smash</strong></span>, bien plus petites et nécessitant peu (ou
pas) de bibliothèques. La plupart de ces shells de remplacement sont
disponibles sur
<a class="ulink" href="http://www.ibiblio.org/pub/Linux/system/shells/" target="_top">
http://www.ibiblio.org/pub/Linux/system/shells/</a>.
Vérifiez que le shell que vous utilisez sait faire tourner les commandes
de tous les scripts <span class="command"><strong>rc</strong></span> que vous incluez sur le disque
d'amorce. <a id="d0e2640" class="indexterm"/>
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2644"/>8.4. Nettoyez les bibliothèques et binaires</h3></div></div></div><p>
De nombreux binaires et bibliothèques restent non nettoyés (ils
contiennent les informations pour le déboguage). Si vous lancez
<span class="command"><strong>file</strong></span> sur ces fichiers, il vous indiquera
<span class="emphasis"><em>not stripped</em></span> si c'est le cas. Lorsque vous copiez
des binaires sur votre système racine, une bonne habitude à prendre est
d'utiliser :
</p><pre class="programlisting">
objcopy --strip-all ORIGINE DESTINATION
</pre><a id="d0e2657" class="indexterm"/><a id="d0e2661" class="indexterm"/><a id="d0e2665" class="indexterm"/><p>
Et lorsque vous copiez des bibliothèques :
</p><pre class="programlisting">
objcopy --strip-debug ORIGINE DESTINATION
</pre></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2672"/>8.5. Déplacez les fichiers non essentiels vers un disque
utilitaire</h3></div></div></div><p>
Si certains binaires ne sont pas immédiatement nécessaires au démarrage
ou au login, vous pouvez les déplacer sur un disque utilitaire. Lisez la
<a class="xref" href="#utilitydisk" title="9.2. Construire un disque utilitaire">Section 9.2, « Construire un disque utilitaire »</a> pour les détails. Vous pouvez aussi
déplacer les modules vers un disque utilitaire.
<a id="d0e2679" class="indexterm"/>
</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e2683"/>9. Sujets divers</h2></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="nonramdiskroot"/>9.1. Système racine sans disque mémoire</h3></div></div></div><p>
<a id="d0e2691" class="indexterm"/>
La <a class="xref" href="#buildroot" title="4. Construire un système racine">Section 4, « Construire un système racine »</a> explique comment construire un système
racine compressé chargé en mémoire lors du démarrage du système. Cette
méthode qui présente beaucoup d'avantages est souvent utilisée.
Néanmoins, certains systèmes possédant peu de mémoire ne peuvent se
permettre d'utiliser de la RAM pour un disque mémoire, et doivent donc
utiliser un système racine monté directement depuis la disquette.
</p><p>
De tels systèmes sont en réalité plus faciles à construire que les
systèmes racines compressés car on peut les créer directement sur
disquette plutôt que de passer par un autre périphérique
intermédiaire, et ne nécessitent pas de compression. Nous indiquerons
les différences de procédure par rapports aux instructions
précédentes. Si vous choisissez cette méthode, rappelez-vous bien que
vous aurez <span class="emphasis"><em>beaucoup moins d'espace disque</em></span> disponible.
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Calculez la taille disponible pour les fichiers racines.
</p><p>
Si vous construisez un système d'amorce/racine unique, vous devez
arriver à faire tenir tous les blocs du noyau ainsi que tous les blocs
du système racine sur un seul disque.
</p></li><li class="listitem"><p>À l'aide de <span class="command"><strong>mke2fs</strong></span>, créez un système
racine de la bonne taille sur une disquette.
</p></li><li class="listitem"><p>Remplissez le système comme décrit précédemment.
</p></li><li class="listitem"><p>Après cela, démontez le système et transférez-le vers un
fichier sur le disque, mais <span class="emphasis"><em>sans le compresser</em></span>.
</p></li><li class="listitem"><p>Transférez le noyau sur une disquette comme décrit
précédemment. Lorsque vous calculerez le mot disque mémoire, mettez le
bit 14 à 0 pour indiquer que le système racine ne doit pas être chargé
en mémoire. Lancez la commande <span class="command"><strong>rdev</strong></span> indiquée.
<a id="d0e2729" class="indexterm"/>
<a id="d0e2734" class="indexterm"/>
<a id="d0e2738" class="indexterm"/>
</p></li><li class="listitem"><p>Transférez le système racine comme précédemment.
</p></li></ol></div><p>
Vous pouvez prendre quelques raccourcis. Si vous construisez un système
avec deux disques, vous pouvez construire le système de fichiers racine
directement sur le second disque au lieu de le transférer sur le disque
dur puis à nouveau sur la disquette. De même, si vous construisez un
disque d'amorce/racine unique et si vous utilisez
<span class="command"><strong>LILO</strong></span>, vous pouvez créer un système de fichiers
<span class="emphasis"><em>unique</em></span> sur toute la disquette contenant le noyau,
les fichiers de <span class="command"><strong>LILO</strong></span> et les fichiers racine, avant de
simplement lancer <span class="command"><strong>LILO</strong></span> comme dernière étape.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="utilitydisk"/>9.2. Construire un disque utilitaire</h3></div></div></div><p>
<a id="d0e2764" class="indexterm"/>
Construire un disque utilitaire est assez facile : créez simplement
un système de fichiers sur une disquette formatée et copiez les
fichiers dessus. Pour l'utiliser depuis un disque d'amorce, montez-le
manuellement une fois le système démarré.
</p><p>
Les instructions précédentes indiquent qu'un disque utilitaire peut être
monté en tant que <code class="filename">/usr</code>. Dans ce cas, les binaires
doivent être placés dans un répertoire <code class="filename">/bin</code> du
disque utilitaire, afin d'être référencés si vous mettez
<code class="filename">/usr/bin</code> dans votre chemin. Les bibliothèques
supplémentaires nécessaires aux binaires sont à placer dans
<code class="filename">/lib</code> sur le disque utilitaire.
</p><p>
Il faut penser à plusieurs choses lorsque l'on crée un disque
utilitaire :
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Ne placez pas de binaires ou de bibliothèques essentiels
pour le système sur le disque utilitaire, puisqu'il ne sera montable qu'une
fois le système démarré ;
</p></li><li class="listitem"><p>Vous ne pouvez pas utiliser de lecteur de disquette et
de lecteur de bande sur port disquette en même temps. Ce qui veut dire
que si votre lecteur de bande est sur un port disquette, vous ne pourrez
pas y accéder tant que votre disque utilitaire sera monté ;
</p></li><li class="listitem"><p>L'accès aux fichiers du disque utilitaire sera lent.
</p></li></ol></div><p>
L' <a class="xref" href="#utilitylist" title="D. Exemple de contenu des répertoires d'un disque utilitaire">Annexe D, <em>Exemple de contenu des répertoires d'un disque utilitaire</em></a> montre ce que peut contenir un tel
disque. Voici quelques idées de fichiers qui peuvent vous être utiles :
programmes de diagnostic et de manipulation de disques
(<span class="command"><strong>format</strong></span>, <span class="command"><strong>fdisk</strong></span>) et systèmes de
fichiers (<span class="command"><strong>mke2fs</strong></span>, <span class="command"><strong>fsck</strong></span>,
<span class="command"><strong>debugfs</strong></span>, <code class="filename">isofs.o</code>), un éditeur de
texte léger (<span class="command"><strong>elvis</strong></span>, <span class="command"><strong>jove</strong></span>), des
utilitaires de compression et archivage (<span class="command"><strong>gzip</strong></span>,
<span class="command"><strong>tar</strong></span>, <span class="command"><strong>cpio</strong></span>,
<span class="command"><strong>afio</strong></span>), de gestion de bande (<span class="command"><strong>mt</strong></span>,
<span class="command"><strong>ftmt</strong></span>, <span class="command"><strong>tob</strong></span>,
<span class="command"><strong>taper</strong></span>), de communication (<code class="filename">ppp.o</code>,
<code class="filename">slip.o</code>, <span class="command"><strong>minicom</strong></span>) et de gestion
de périphériques (<span class="command"><strong>setserial</strong></span>,
<span class="command"><strong>mknod</strong></span>).
</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="pros"/>10. La méthode des pros</h2></div></div></div><p>
Vous avez peut-être remarqué comme les disques d'amorce utilisés par
les principales distributions comme Slackware, RedHat ou Debian
paraissent plus sophistiqués que ce que décrit ce document. Les
disques d'amorce de distribution professionnelles se basent sur les
mêmes principes que ceux décrits ici, mais utilisent diverses astuces
pour satisfaire aux besoins supplémentaires de leurs disques
d'amorce. Tout d'abord, ils doivent pouvoir fonctionner sur une grande
variété de matériel et doivent donc pouvoir interagir avec
l'utilisateur et charger divers gestionnaires de
périphériques. Ensuite, ils doivent pouvoir travailler avec beaucoup
d'options d'installation différentes, de manière plus ou moins
automatique. Enfin, les disques d'amorce des distributions combinent
en général la possibilité d'installer le système avec celle de le
réparer.
</p><a id="d0e2866" class="indexterm"/><p>
Certains disques d'amorce utilisent une fonctionnalité appelée
<span class="command"><strong>initrd</strong></span> (<span class="emphasis"><em>initial ramdisk</em></span>, ou
<span class="emphasis"><em>disque mémoire initial</em></span>). Cette fonctionnalité est
apparue aux alentours de la version 2.0.x et permet au noyau de démarrer
en deux étapes. Quand le noyau commence son démarrage, il charge une
première image de disque mémoire depuis le disque d'amorce. Ce disque
mémoire initial est un système racine contenant un programme à exécuter
avant le chargement du vrai système racine. Ce programme inspecte en
général l'environnement et/ou demande à l'utilisateur de sélectionner
diverses options de démarrage, telles que le périphérique sur lequel on
va trouver le vrai disque racine. En général, il charge des modules
supplémentaires ne faisant pas partie du noyau. Quand ce programme
initial se termine, le noyau charge la vraie image racine et continue
son démarrage normalement. Pour plus d'information sur
<span class="command"><strong>initrd</strong></span>, lisez
<code class="filename">/usr/src/linux/Documentation/initrd.txt</code> et <a class="ulink" href="ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/initrd-example.tgz" target="_top">
ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/initrd-example.tgz</a>.
</p><p>
Vous trouverez ci-dessous des résumés sur la manière dont les disques
d'installation de chaque distribution semblent marcher, après étude de
leurs systèmes de fichiers et/ou code source. Nous ne garantissons pas
l'exactitude des informations, ni qu'elles n'ont pas changé depuis les
versions indiquées.
</p><p>
Slackware (v.3.1) utilise un démarrage direct avec
<span class="command"><strong>LILO</strong></span> semblable à la description de la <a class="xref" href="#usinglilo" title="6.1. Transfert du noyau avec LILO">Section 6.1, « Transfert du noyau avec LILO »</a>. Le disque d'amorce de la Slackware affiche un
message de démarrage (<span class="emphasis"><em>Welcome to the Slackware Linux
bootkernel disk!</em></span>) en utilisant le paramètre
<code class="option">message</code> de <span class="command"><strong>LILO</strong></span>. Ce message indique
à l'utilisateur d'entrer une ligne de paramètres de démarrage si
nécessaire. Après le démarrage, un système racine est chargé depuis une
seconde disquette. L'utilisateur lance un script de configuration
(<span class="command"><strong>setup</strong></span>) qui démarre l'installation. Au lieu
d'utiliser un noyau modulaire, Slackware fournit un certain nombre de
noyaux différents, et c'est à l'utilisateur de fournir celui qui
correspond à sa configuration matérielle.
</p><p>
RedHat (v.4.0) utilise aussi un démarrage avec <span class="command"><strong>LILO</strong></span>.
Il charge un disque mémoire compressé sur le premier disque, qui fait
tourner une version personnalisée d'<span class="command"><strong>init</strong></span>. Ce
programme demande quels gestionnaires utiliser puis charge des fichiers
supplémentaires depuis un autre disque si nécessaire.
</p><p>
Debian (v.1.3) possède probablement le groupe de disques d'installation
le plus sophistiqué. Il utilise le chargeur <span class="command"><strong>SYSLINUX</strong></span>
pour choisir différentes options de chargement, puis utilise une image
<span class="command"><strong>initrd</strong></span> pour guider l'utilisateur dans l'installation.
Il semble utiliser à la fois des versions personnalisées
d'<span class="command"><strong>init</strong></span> et du shell.
</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="cdrom"/>11. Créer des CD-ROM amorçables</h2></div></div></div><p>
Cette section a été écrite avec la contribution de Rizwan Mohammed Darwe
(rizwan CHEZ clovertechnologies POINT com).
</p><p>
Cette section suppose que vous êtes familier avec la procédure et le
fonctionnement de l'écriture de CD sous Linux. Considérez ceci comme
une référence rapide pour inclure la possibilité de démarrer à partir du
CD que vous allez graver. La CD-Writing-HOWTO devrait vous donner plus
de détails.
</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2936"/>11.1. Qu'est-ce que El Torito ?</h3></div></div></div><p>
À partir des plates-formes x86, plusieurs <acronym class="acronym">BIOS</acronym> ont
commencé à accepter les CD amorçables. Les rustines pour
<span class="command"><strong>mkisofs</strong></span> sont basés sur le standard appelé
« El Torito ». En deux mots, El Torito est une
spécification qui indique le format qu'un CD doit respecter, afin de
pouvoir démarrer directement sur celui-ci.
</p><p>
La spécification « El Torito » dit que
<span class="emphasis"><em>tout</em></span> lecteur de CD-ROM devrait fonctionner (SCSI ou
EIDE) si le <acronym class="acronym">BIOS</acronym> est compatible El Torito. Sauf que
cela n'a été testé qu'avec des lecteurs EIDE, car aucun contrôleur SCSI
testé ne semble supporter El Torito. La carte mère doit impérativement
être compatible El Torito. Comment savoir si votre carte mère
est compatible El Torito ? Eh bien les cartes mères compatibles
offrent le choix de démarrer à partir du disque dur, de la disquette, du
réseau ou du CD-ROM.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2955"/>11.2. Comment ça marche</h3></div></div></div><p>
Le standard El Torito fonctionne en faisant apparaître le lecteur de CD,
à travers les appels <acronym class="acronym">BIOS</acronym>, comme un lecteur de
disquettes normal. De cette façon vous mettez simplement n'importe
quelle image de la taille d'une disquette (exactement 1440 ko pour une
disquette de 1,44 Mo) quelque part sur le système de fichiers ISO. Dans
l'en-tête du système de fichiers ISO vous placez un pointeur vers cette
image. Le <acronym class="acronym">BIOS</acronym> va alors récupérer cette image à
partir du CD et agit comme si il démarrait à partir du lecteur de
disquettes. Cela permet à une disquette de démarrage
<span class="command"><strong>LILO</strong></span>, par exemple, d'être utilisée simplement comme
si c'était une vraie disquette.
</p><p>
En général, les 1,44 (ou 2,88 si supportés) premiers Mo du CD-ROM
contiennent une image de la disquette créée par vous. Cette image est
traitée comme une disquette par le <acronym class="acronym">BIOS</acronym> et démarrée
par celui-ci. (Avec comme conséquence, lors du démarrage à partir de la
disquette virtuelle, que votre lecteur original <span class="emphasis"><em>A:</em></span>
(<code class="filename">/dev/fd0</code>) ne sera plus accessible, mais vous
pouvez toujours essayer <code class="filename">/dev/fd1</code>).
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e2983"/>11.3. Comment le faire marcher</h3></div></div></div><p>
D'abord, il faut créer un fichier, disons <code class="filename">boot.img</code>,
qui est l'image exacte de la disquette que vous voulez démarrer via le
CD-ROM. Ce doit être une disquette de démarrage 1,44 Mo. La commande
suivante permet de la créer :
</p><pre class="programlisting">
dd if=/dev/fd0 of=boot.img bs=10k count=144
</pre><p>
en supposant que la disquette se trouve dans le lecteur
<span class="emphasis"><em>A:</em></span>.
</p><p>
Placez cette image quelque part dans la hiérarchie qui sera la source du
système de fichiers iso9660. C'est une bonne idée de mettre tous les
fichiers relatifs au démarrage dans leur propre répertoire
(<code class="filename">boot/</code> sous la racine du système de fichiers
iso9660, par exemple).
</p><p>
Avertissement : Votre disquette de démarrage <span class="emphasis"><em>doit</em></span>
charger un <span class="emphasis"><em>initial ramdisk</em></span> via
<span class="command"><strong>LILO</strong></span>, et pas le disque mémoire du noyau ! Ceci est du
au fait que lorsque le noyau démarre, l'émulation
<acronym class="acronym">BIOS</acronym> du CD comme disquette est limitée et va échouer.
<span class="command"><strong>LILO</strong></span> va charger le disque mémoire en utilisant les
appels disques <acronym class="acronym">BIOS</acronym>, et l'émulation fonctionne
normalement.
</p><p>
La spécification El Torito requiert également la création d'un
<span class="emphasis"><em>catalogue de démarrage</em></span>. Il s'agit d'un fichier de
2048 octets qui n'a pas grand intérêt à part qu'il est nécessaire.
La correction réalisée par l'auteur de <span class="command"><strong>mkisofs</strong></span> permet
la création automatique de ce catalogue de démarrage, mais vous devez
spécifier où ce catalogue doit se trouver dans la hiérarchie du système
de fichiers iso9660. En général c'est une bonne idée de le mettre au
même endroit que l'image de démarrage, et de l'appeler
<code class="filename">boot.catalog</code>. La commande pour créer le système de
fichiers iso9660 dans le fichier <code class="filename">bootcd.iso</code> est
alors :
</p><pre class="programlisting">
mkisofs -r -b boot/boot.img -c boot/boot.catalog -o bootcd.iso .
</pre><p>
L'option <code class="option">-b</code> précise l'image de démarrage à utiliser
(notez que le chemin est relatif à la racine du disque iso9660), et
l'option <code class="option">-c</code> est pour le fichier catalogue de démarrage.
L'option <code class="option">-r</code> va mettre les propriétaires et droits des
fichiers appropriés (voir la page de manuel de
<span class="command"><strong>mkisofs</strong></span>). Le « . » à la fin dit de prendre comme source
le répertoire courant.
</p><p>
Maintenant gravez le CD avec la commande habituelle et le voilà prêt à
démarrer.
</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="d0e3055"/>11.4. Créer des CD-ROM Win9x amorçables</h3></div></div></div><p>
La première chose à faire est de récupérer une image amorçable utilisée
par le CD source. Mais vous ne pouvez pas vous contenter de monter
le CD sous Linux et d'utiliser <span class="command"><strong>dd</strong></span> pour copier les
1440 premiers kilo-octets vers une disquette ou
un fichier <code class="filename">boot.img</code>. Au lieu de cela, vous devez
simplement amorcer votre système à partir du CD-ROM source.
</p><p>
Lorsque vous démarrez le CD Win98 vous vous retrouvez à l'invite
<span class="emphasis"><em>A:</em></span>, qui est en fait le disque mémoire. Et
<span class="emphasis"><em>D:</em></span> ou <span class="emphasis"><em>Z:</em></span> où se trouvent tous
les fichiers d'installation. En utilisant la commande DOS
<span class="command"><strong>diskcopy</strong></span>, copiez l'image <span class="emphasis"><em>A:</em></span> dans
le vrai lecteur de disquettes, qui est maintenant
<span class="emphasis"><em>B:</em></span>. La commande suivante permet de le faire :
</p><pre class="programlisting">
diskcopy A: B:
</pre><p>
Cela fonctionne exactement comme <span class="command"><strong>dd</strong></span>. Vous pouvez
essayer de démarrer à partir de ce disque fraîchement créé pour tester
si le processus de démarrage est similaire à celui du CD source. Ensuite
faites le <span class="command"><strong>dd</strong></span> habituel de cette disquette vers un fichier
comme <code class="filename">boot.img</code> et le reste sera comme d'habitude.
</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e3099"/>12. Foire Aux Questions (FAQ)</h2></div></div></div><div class="qandaset"><a id="d0e3102"/><dl><dt>Q : <a href="#d0e3103">
Je démarre depuis mes disques d'amorce/racine et rien ne se
passe. Que faire ?
</a></dt><dt>Q : <a href="#d0e3112">
Comment fonctionne le disque d'amorce
Slackware/Debian/RedHat ?
</a></dt><dt>Q : <a href="#d0e3121">
Comment utiliser des disquettes de haute densité (> 1440 ko) ?
Comment savoir quelles densités fonctionneront avec mon lecteur de
disquette ?
</a></dt><dt>Q : <a href="#d0e3130">
Comment augmenter la taille de mes disques mémoire ?
</a></dt><dt>Q : <a href="#d0e3181">
Comment faire des CD-ROM amorçables ?
</a></dt><dt>Q : <a href="#d0e3190">
Comment faire des disquettes LS-120 amorçables ?
</a></dt><dt>Q : <a href="#d0e3228">
Comment faire un disque d'amorce avec un gestionnaire pour XYZ ?
</a></dt><dt>Q : <a href="#d0e3273">
Comment mettre à jour le noyau de ma disquette d'amorce ?
</a></dt><dt>Q : <a href="#d0e3292">
Comment mettre à jour ma disquette racine avec de nouveaux
fichiers ?
</a></dt><dt>Q : <a href="#d0e3311">
Comment retirer LILO pour pouvoir redémarrer DOS ?
</a></dt><dt>Q : <a href="#d0e3361">
Comment puis-je démarrer si j'ai perdu mon noyau et
mon disque d'amorce ?
</a></dt><dt>Q : <a href="#d0e3401">
Comment faire des copies supplémentaires des disquettes
d'amorce/racine ?
</a></dt><dt>Q : <a href="#d0e3456">
Comment puis-je démarrer sans avoir à taper
« ahaxxxx=nn,nn,nn » à chaque fois ?
</a></dt><dt>Q : <a href="#d0e3542">
Au démarrage, j'obtiens l'erreur « A: cannot execute
B ». Pourquoi ?
</a></dt><dt>Q : <a href="#d0e3597">
Mon noyau gère les disques mémoires, mais les initialise à 0 ko
</a></dt></dl><table border="0"><colgroup><col align="left" width="1%"/><col/></colgroup><tbody><tr class="question"><td align="left" valign="top"><a id="d0e3103"/><a id="d0e3104"/><p><strong>Q :</strong></p></td><td align="left" valign="top"><p>
Je démarre depuis mes disques d'amorce/racine et rien ne se
passe. Que faire ?
</p></td></tr><tr class="answer"><td align="left" valign="top"><p><strong>R :</strong></p></td><td align="left" valign="top"><p>
Voir la section précédente <a class="xref" href="#troubleshooting" title="7. En cas de problème, ou l'agonie de la défaite">Section 7, « En cas de problème, ou l'agonie de la défaite »</a>.
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="d0e3112"/><a id="d0e3113"/><p><strong>Q :</strong></p></td><td align="left" valign="top"><p>
Comment fonctionne le disque d'amorce
Slackware/Debian/RedHat ?
</p></td></tr><tr class="answer"><td align="left" valign="top"><p><strong>R :</strong></p></td><td align="left" valign="top"><p>
Voir la section précédente <a class="xref" href="#pros" title="10. La méthode des pros">Section 10, « La méthode des pros »</a>.
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="d0e3121"/><a id="d0e3122"/><p><strong>Q :</strong></p></td><td align="left" valign="top"><p>
Comment utiliser des disquettes de haute densité (> 1440 ko) ?
Comment savoir quelles densités fonctionneront avec mon lecteur de
disquette ?
</p></td></tr><tr class="answer"><td align="left" valign="top"><p><strong>R :</strong></p></td><td align="left" valign="top"><p>
Voir dans la section précédente <a class="xref" href="#high-density" title="8.1. Augmentez la densité du disque">Section 8.1, « Augmentez la densité du disque »</a> les
commentaires de Alain Knaff à ce sujet. C'est la réponse la plus
crédible que je connaisse.
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="d0e3130"/><a id="d0e3131"/><p><strong>Q :</strong></p></td><td align="left" valign="top"><p>
Comment augmenter la taille de mes disques mémoire ?
</p></td></tr><tr class="answer"><td align="left" valign="top"><p><strong>R :</strong></p></td><td align="left" valign="top"><p>
Cela devrait être mieux expliqué dans le texte, mais je met une réponse
ici pour l'instant.
</p><p>
D'abord, <span class="emphasis"><em>n'essayez pas</em></span> d'utiliser
<span class="command"><strong>rdev</strong></span> ou <span class="command"><strong>ramsize</strong></span> pour faire cela,
quoi qu'en disent leurs documentations. Le mot disque mémoire ne
détermine plus la taille des disques mémoires.
</p><p>
Ensuite, gardez à l'esprit que les disques mémoires sont actuellement
dynamiques ; lorsque vous définissez la taille d'un disque mémoire vous
n'allouez pas de mémoire, vous précisez juste de combien il peut
grandir. N'ayez pas peur de choisir une taille inutilement trop grande
(par exemple 8 ou même 16 Mo). L'espace RAM n'est pas utilisé tant que
vous n'en n'avez pas besoin. Vous pouvez définir ces limites de
plusieurs façons différentes :
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Utilisez le paramètre <code class="option">ramdisk_size=NNN</code>
en ligne de commande. Vous pouvez soit le rentrer à la main soit
utiliser une commande comme
<span class="emphasis"><em>append="ramdisk_size=NNN"</em></span> avec
<span class="command"><strong>LILO</strong></span> ;</p></li><li class="listitem"><p>Si vous utilisez <span class="command"><strong>LILO</strong></span>, vous pouvez
utiliser une option du noyau comme <code class="option">ramdisk=8192K</code> dans
le fichier <code class="filename">lilo.conf</code> ;</p></li><li class="listitem"><p>Changez l'option de configuration du noyau
<span class="emphasis"><em>CONFIG_BLK_DEV_RAM_SIZE</em></span> et recompilez votre
noyau.</p></li></ol></div></td></tr><tr class="question"><td align="left" valign="top"><a id="d0e3181"/><a id="d0e3182"/><p><strong>Q :</strong></p></td><td align="left" valign="top"><p>
Comment faire des CD-ROM amorçables ?
</p></td></tr><tr class="answer"><td align="left" valign="top"><p><strong>R :</strong></p></td><td align="left" valign="top"><p>
Voir la section précédente <a class="xref" href="#cdrom" title="11. Créer des CD-ROM amorçables">Section 11, « Créer des CD-ROM amorçables »</a>.
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="d0e3190"/><a id="d0e3191"/><p><strong>Q :</strong></p></td><td align="left" valign="top"><p>
Comment faire des disquettes LS-120 amorçables ?
</p></td></tr><tr class="answer"><td align="left" valign="top"><p><strong>R :</strong></p></td><td align="left" valign="top"><p>
Comme je n'ai pas de lecteur de disquettes LS-120, les informations qui
suivent sont un résumé fourni par David Cinege du Linux Router Project.
</p><p>
Le LS-120 est un lecteur de disquettes IDE. Il est compatible à la fois
avec les disquettes 3,5 » et les nouvelles disquettes de 120 Mo. Depuis
Linux 2.0.31, celles-ci sont complètement supportées. Pour être capable de
démarrer à partir de ces disquettes, vous devez avoir un
<acronym class="acronym">BIOS</acronym> qui autorise le LS-120 à être traité comme
lecteur 0 (alors que les lecteurs IDE commencent normalement à 80). Si
vous n'avez pas le support du <acronym class="acronym">BIOS</acronym>, vous pouvez
acheter une petite carte IDE FloppyMAX de Promise Technologies pour
combler ce manque.
</p><p>
Le chargeur du noyau n'aime pas le LS-120, et meurt instantanément. Les
disques 2m non plus ne l'aiment pas et ne démarreront pas. Les
disquettes de 1,44 à 1,74 Mo fonctionnent bien.
<span class="command"><strong>SYSLINUX</strong></span> fonctionne avec les disquettes de 120 Mo à
partir de la version 1.32. Vous auriez intérêt à partitionner la
disquette et utiliser ext2 ou minix, au lieu de
<span class="command"><strong>SYSLINUX</strong></span>, sauf si vous avez besoin d'une
compatibilité MS-DOS.
</p><p>
<span class="command"><strong>LILO</strong></span> fonctionne bien avec des disquettes de 120 Mo.
Voici un <code class="filename">lilo.conf</code> simple :
</p><pre class="programlisting">
boot=/dev/hda
compact
disk=/dev/hda bios=0
install=/floppy/boot.b
map=/floppy/map
image=/floppy/linux
label=Linux
append="load_ramdisk=1"
initrd=/floppy/root.bin
ramdisk=8192
</pre><p>
La ligne <span class="emphasis"><em>disk=/dev/hda bios=0</em></span> est la ruse pour
démarrer à partir du LS-120.
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="d0e3228"/><a id="d0e3229"/><p><strong>Q :</strong></p></td><td align="left" valign="top"><p>
Comment faire un disque d'amorce avec un gestionnaire pour XYZ ?
</p></td></tr><tr class="answer"><td align="left" valign="top"><p><strong>R :</strong></p></td><td align="left" valign="top"><p>
Le plus simple est d'obtenir un noyau Slackware depuis le site miroir
de Slackware le plus proche. Les noyaux Slackware sont des noyaux
génériques contenant le plus de gestionnaires pour le plus de
périphériques différents possibles. Si vous avez un contrôleur SCSI
ou IDE, vous avez de bonnes chances de trouver un gestionnaire
correspondant dans le noyau Slackware.
</p><p>
Allez dans le répertoire <code class="filename">a1</code> et sélectionnez un
noyau SCSI ou IDE suivant votre type de contrôleur. Vérifiez dans le
fichier <code class="filename">xxxxkern.cfg</code> correspondant au noyau choisi
qu'il contient bien les gestionnaires que vous voulez. Si c'est le cas,
le noyau correspondant devrait pouvoir démarrer votre ordinateur.
Récupérez le fichier <code class="filename">xxxxkern.tgz</code> et copiez-le sur
votre disquette d'amorce comme indiqué dans la section sur la
fabrication des disques d'amorce.
</p><a id="d0e3246" class="indexterm"/><p>
Vous devez ensuite vérifier le périphérique racine indiqué dans le
noyau, en utilisant la commande :
</p><pre class="programlisting">
rdev zImage
</pre><p>
<span class="command"><strong>rdev</strong></span> vous montrera alors le périphérique actuellement
configuré dans le noyau. Si ce n'est pas celui que vous voulez, utilisez
<span class="command"><strong>rdev</strong></span> pour le changer. Par exemple, le noyau que j'ai
essayé pointait sur <code class="filename">/dev/sda2</code>, mais ma partition
racine SCSI est sur <code class="filename">/dev/sda8</code>. Pour utiliser une
disquette racine, vous devrez lancer la commande :
</p><pre class="programlisting">
rdev zImage /dev/fd0
</pre><p>
Si vous voulez aussi savoir comment configurer un disque racine
Slackware, cela dépasse le cadre de ce HOWTO, et je vous suggère donc
de consulter le Guide d'installation de Linux ou de récupérer la
distribution Slackware. Voir l'<a class="xref" href="#references" title="A. Ressources et pointeurs">Annexe A, <em>Ressources et pointeurs</em></a> de ce HOWTO.
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="d0e3273"/><a id="d0e3274"/><p><strong>Q :</strong></p></td><td align="left" valign="top"><p>
Comment mettre à jour le noyau de ma disquette d'amorce ?
</p></td></tr><tr class="answer"><td align="left" valign="top"><p><strong>R :</strong></p></td><td align="left" valign="top"><p>
<a id="d0e3280" class="indexterm"/>
Copiez simplement le noyau sur votre disquette d'amorce à l'aide de la
commande <span class="command"><strong>dd</strong></span> s'il s'agit d'une disquette d'amorce sans
système de fichier, ou par la commande <span class="command"><strong>cp</strong></span> pour un
disque d'amorce/racine. Reportez-vous à la <a class="xref" href="#boot" title="3.1. Démarrage">Section 3.1, « Démarrage »</a> de ce
HOWTO pour les détails de création d'un disque d'amorce. Le processus
décrit s'applique aussi bien à la mise à jour d'un noyau sur le disque
d'amorce.
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="d0e3292"/><a id="d0e3293"/><p><strong>Q :</strong></p></td><td align="left" valign="top"><p>
Comment mettre à jour ma disquette racine avec de nouveaux
fichiers ?
</p></td></tr><tr class="answer"><td align="left" valign="top"><p><strong>R :</strong></p></td><td align="left" valign="top"><p>
<a id="d0e3299" class="indexterm"/>
Le plus simple est de recopier le système de fichiers depuis le disque
racine vers le PÉRIPHÉRIQUE que vous avez utilisé (comme dans la
section précédente <a class="xref" href="#creatingrootfs" title="4.2. Création du système de fichiers">Section 4.2, « Création du système de fichiers »</a>
). Montez ensuite le système de fichiers et modifiez-le. Vous
devez vous souvenir d'où partait votre système racine et du nombre de
blocs qu'il occupait :
</p><pre class="programlisting">
dd if=/dev/fd0 bs=1k skip=DEBUTRACINE count=BLOCS | \
gunzip > PÉRIPHÉRIQUE
mount -t ext2 PÉRIPHÉRIQUE /mnt
</pre><p>
Une fois les modifications effectuées, recommencez comme précédemment
(dans la <a class="xref" href="#wrappingitup" title="4.7. C'est dans la poche">Section 4.7, « C'est dans la poche »</a>)
et retransférez le système racine sur le disque. Vous ne devriez pas
avoir à retransférer le noyau ou à recalculer le mot disque mémoire si
vous ne changez pas la position de départ du nouveau système de
fichiers.
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="d0e3311"/><a id="d0e3312"/><p><strong>Q :</strong></p></td><td align="left" valign="top"><p>
Comment retirer <span class="command"><strong>LILO</strong></span> pour pouvoir redémarrer DOS ?
</p></td></tr><tr class="answer"><td align="left" valign="top"><p><strong>R :</strong></p></td><td align="left" valign="top"><p>
<a id="d0e3321" class="indexterm"/>
<a id="d0e3326" class="indexterm"/>
Ce n'est pas réellement un problème de disque d'amorce, mais il est
souvent posé. Sous Linux, vous pouvez lancer :
</p><pre class="programlisting">
/sbin/lilo -u
</pre><p>
Vous pouvez aussi utiliser la commande <span class="command"><strong>dd</strong></span> pour copier
la sauvegarde effectuée par <span class="command"><strong>LILO</strong></span> sur le secteur
d'amorce. Reportez-vous à la documentation de <span class="command"><strong>LILO</strong></span> si
vous voulez essayer.
</p><p>
Sous DOS et Windows vous pouvez utiliser la commande DOS :
</p><pre class="programlisting">
FDISK /MBR
</pre><p>
<acronym class="acronym">MBR</acronym> signifie Master Boot Record (Enregistrement
d'amorce Maître), et il remplace le secteur de démarrage avec une
version propre du <acronym class="acronym">DOS</acronym>, sans modifier la table de
partitions. Certains puristes n'apprécient pas cette méthode, mais même
l'auteur de <span class="command"><strong>LILO</strong></span>, Werner Almesberger, le suggère.
C'est facile et ça marche.
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="d0e3361"/><a id="d0e3362"/><p><strong>Q :</strong></p></td><td align="left" valign="top"><p>
Comment puis-je démarrer si j'ai perdu mon noyau <span class="emphasis"><em>et</em></span>
mon disque d'amorce ?
</p></td></tr><tr class="answer"><td align="left" valign="top"><p><strong>R :</strong></p></td><td align="left" valign="top"><p>
Si vous n'avez pas de disque d'amorce sous la main, le plus simple est
d'obtenir un noyau Slackware pour votre type de contrôleur de disque
(IDE ou SCSI) comme décrit précédemment dans « Comment faire
un disque d'amorce avec un gestionnaire pour XYZ ? ». Vous
pouvez alors démarrer votre ordinateur avec ce noyau, puis réparer les
dommages éventuels.
</p><p>
Le noyau que vous récupérerez peut ne pas avoir comme périphérique
racine ce que vous souhaitez comme disque et partition. Par exemple, le
noyau générique SCSI de Slackware utilise <code class="filename">/dev/sda2</code>
comme périphérique racine, alors que ma partition racine Linux se trouve
être <code class="filename">/dev/sda8</code>. Dans ce cas il faut changer le
périphérique racine.
</p><p>
Vous pouvez changer les paramètres de périphérique racine et disque
mémoire du noyau même si vous n'avez que le noyau, et un autre système
d'exploitation tel que DOS.
</p><p>
<span class="command"><strong>rdev</strong></span> modifie les paramètres du noyau en changeant les
valeurs à un décalage fixé dans le fichier du noyau, et vous pouvez donc
faire de même si vous avez un éditeur hexadécimal disponible sous
quelque système d'exploitation fonctionnant encore — par exemple,
Norton Utilities Disk Editor sous DOS. Vous devez alors vérifier puis
éventuellement modifier les valeurs dans le noyau, aux décalages
suivants :
</p><pre class="programlisting">
HEX DEC DESCRIPTION
0x01F8 504 Octet de poids faible du mot disque mémoire
0x01F9 505 Octet de poids fort du mot disque mémoire
0x01FC 508 Numéro mineur du périphérique racine : voir ci-dessous
0X01FD 509 Numéro majeur du périphérique racine : voir ci-dessous
</pre><p>
L'interprétation du mot disque mémoire était décrite dans la
précédente <a class="xref" href="#ramdiskword" title="6.3. Mise en place du mot disque mémoire">Section 6.3, « Mise en place du mot disque mémoire »</a>.
</p><p>
Les numéros majeurs et mineurs de périphérique doivent correspondre au
périphérique à partir duquel le système racine sera monté. Certaines
valeurs utiles parmi lesquelles vous pouvez choisir sont :
</p><pre class="programlisting">
DEVICE MAJEUR MINEUR
/dev/fd0 2 0 1er lecteur de disquette
/dev/hda1 3 1 partition 1 sur le 1er disque IDE
/dev/sda1 8 1 partition 1 sur le 1er disque SCSI
/dev/sda8 8 8 partition 8 sur le 1er disque SCSI
</pre><p>
Une fois ces valeurs mises en place, vous pouvez écrire le fichier sur
une disquette en utilisant soit Norton Utilities Disk Editor, soit un
programme appelé <span class="command"><strong>rawrite.exe</strong></span>. Ce programme est inclus
dans toutes les distributions. C'est un programme DOS qui écrit
directement un fichier sur le disque, en commençant à partir du secteur
d'amorce, au lieu de l'écrire dans le système de fichiers. Si vous
utilisez Norton Utilities, vous devez écrire le fichier sur un disque
physique en commençant au début du disque.
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="d0e3401"/><a id="d0e3402"/><p><strong>Q :</strong></p></td><td align="left" valign="top"><p>
Comment faire des copies supplémentaires des disquettes
d'amorce/racine ?
</p></td></tr><tr class="answer"><td align="left" valign="top"><p><strong>R :</strong></p></td><td align="left" valign="top"><p>
Les supports magnétiques se détériorant avec le temps, vous devriez
conserver plusieurs copies de votre disque de secours, au cas où
l'original ne serait plus lisible.
</p><p>
Le plus simple pour copier une disquette quelle qu'elle soit, y compris
une disquette d'amorce ou utilitaire, est d'utiliser la commande
<span class="command"><strong>dd</strong></span> pour copier le contenu de la disquette originale
vers un fichier de votre disque dur, puis de réutiliser la même commande
pour recopier le fichier vers une nouvelle disquette. Notez que vous
n'avez pas besoin de monter la disquette, et ne devriez pas le faire,
car <span class="command"><strong>dd</strong></span> utilise l'interface directe du périphérique.
</p><p>
Pour copier l'original, entrez la commande :
</p><pre class="programlisting">
dd if=<em class="replaceable"><code>NOMPÉRIPHÉRIQUE</code></em> of=<em class="replaceable"><code>NOMFICHIER</code></em>
</pre><p>
où <em class="replaceable"><code>NOMPÉRIPHÉRIQUE</code></em> est le nom du périphérique
du lecteur de disquette et <em class="replaceable"><code>NOMFICHIER</code></em> le nom
du fichier de sortie (sur le disque dur).
</p><p>
Ne pas mettre le paramètre <code class="option">count</code> permet à
<span class="command"><strong>dd</strong></span> de copier la disquette en entier (2880 blocs
en haute densité).
</p><p>
Pour recopier le fichier résultant sur une nouvelle disquette, insérez
celle-ci et entrez la commande inverse :
</p><pre class="programlisting">
dd if=<em class="replaceable"><code>NOMFICHIER</code></em> of=<em class="replaceable"><code>NOMPÉRIPHÉRIQUE</code></em>
</pre><p>
À noter que la discussion précédente suppose que vous n'avez qu'un
seul lecteur de disquette. Si vous en avez deux du même type, vous
pouvez copier les disquettes à l'aide d'une commande du type :
</p><pre class="programlisting">
dd if=/dev/fd0 of=/dev/fd1
</pre></td></tr><tr class="question"><td align="left" valign="top"><a id="d0e3456"/><a id="d0e3457"/><p><strong>Q :</strong></p></td><td align="left" valign="top"><p>
Comment puis-je démarrer sans avoir à taper
« ahaxxxx=nn,nn,nn » à chaque fois ?
</p></td></tr><tr class="answer"><td align="left" valign="top"><p><strong>R :</strong></p></td><td align="left" valign="top"><p>
<a id="d0e3463" class="indexterm"/>
Quand un périphérique disque ne peut pas être détecté automatiquement,
il faut fournir au noyau une chaîne de paramètres de commande du
périphérique, telle que :
</p><pre class="programlisting">
aha152x=0x340,11,3,1
</pre><p>
Cette chaîne peut être fournie de différentes manières grâce à
<span class="command"><strong>LILO</strong></span> :
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
En l'entrant sur la ligne de commande à chaque démarrage du système avec
<span class="command"><strong>LILO</strong></span>. C'est assez ennuyeux ;
</p></li><li class="listitem"><p>
En utilisant le mot clé <span class="emphasis"><em>lock</em></span> de
<span class="command"><strong>LILO</strong></span> pour lui faire stocker la ligne de commande
comme ligne de commande par défaut, ce qui fera utiliser à
<span class="command"><strong>LILO</strong></span> les mêmes options à chaque démarrage ;
</p></li><li class="listitem"><p>
En utilisant la directive <span class="emphasis"><em>append=</em></span> dans le fichier
de configuration de <span class="command"><strong>LILO</strong></span>. Attention à encadrer la
chaîne de paramètres avec des guillemets.
</p></li></ul></div><p>
Par exemple, une ligne de commande utilisant la chaîne ci-dessus
serait :
</p><pre class="programlisting">
zImage aha152x=0x340,11,3,1 root=/dev/sda1 lock
</pre><p>
Cela passerait la chaîne de paramètres pour le périphérique tout en
demandant au noyau d'utiliser <code class="filename">/dev/sda1</code> comme
périphérique racine et de sauvegarder la ligne de commande pour la
réutiliser pour tous les démarrages futurs.
</p><p>
Un exemple de directive <span class="emphasis"><em>APPEND</em></span> peut être :
</p><pre class="programlisting">
APPEND = "aha152x=0x340,11,3,1"
</pre><p>
Attention, la chaîne de paramètres ne doit PAS être entourée de
guillemets sur la ligne de commande, mais DOIT l'être dans la
directive <span class="emphasis"><em>APPEND</em></span>.
</p><p>
Notez aussi que pour que la chaîne de paramètres soit utilisée, le noyau
doit contenir le gestionnaire pour ce type de disque. Si ce n'est pas le
cas, personne n'écoutera la chaîne de paramètres, et vous devrez
reconstruire le noyau pour inclure le gestionnaire requis. Pour plus de
détails sur la reconstruction du noyau, rendez-vous dans
<code class="filename">/usr/src/linux</code> et lisez le
<code class="filename">README</code>, ou lisez la FAQ Linux et le HOWTO
Installation. Vous pouvez aussi obtenir un noyau générique pour votre
type de disque et l'installer.
</p><p>
Il est fortement recommandé aux lecteurs de lire la documentation de
<span class="command"><strong>LILO</strong></span> avant de faire des expériences d'installation de
<span class="command"><strong>LILO</strong></span>. Une utilisation imprudente de la directive
<span class="emphasis"><em>BOOT</em></span> peut endommager des partitions.
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="d0e3542"/><a id="d0e3543"/><p><strong>Q :</strong></p></td><td align="left" valign="top"><p>
Au démarrage, j'obtiens l'erreur « A: cannot execute
B ». Pourquoi ?
</p></td></tr><tr class="answer"><td align="left" valign="top"><p><strong>R :</strong></p></td><td align="left" valign="top"><p>
<a id="d0e3549" class="indexterm"/>
Il existe plusieurs utilitaires qui référencent en dur le nom d'autres
programmes. Ça n'arrive pas tout le temps, mais cela peut expliquer
pourquoi un exécutable peut ne pas être trouvé sur votre système même si
vous l'y voyez. Vous pouvez vérifier si un programme donné est référencé
en dur dans un autre en utilisant la commande <span class="command"><strong>strings</strong></span>
et en passant son résultat par <span class="command"><strong>grep</strong></span>.
</p><p>
On trouve comme exemples connus de référence en dur :
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
<span class="command"><strong>shutdown</strong></span> dans certaines versions référence
<code class="filename">/etc/reboot</code> en dur, et <span class="command"><strong>reboot</strong></span>
doit donc être placé dans le répertoire <code class="filename">/etc</code> ;
</p></li><li class="listitem"><p>
<span class="command"><strong>init</strong></span> a posé des problèmes à au moins une personne,
pour qui le noyau ne trouvait pas <span class="command"><strong>init</strong></span>.
</p></li></ul></div><p>
Pour corriger ces problèmes, vous pouvez soit déplacer les programmes
vers le répertoire attendu, soit changer les fichiers de configuration
(par exemple <code class="filename">inittab</code>) pour référencer le bon
répertoire. En cas de doute, mettez les programmes dans le même
répertoire que sur votre disque dur, et utilisez les mêmes fichiers
<code class="filename">inittab</code> et <code class="filename">/etc/rc.d</code> que sur
celui-ci.
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="d0e3597"/><a id="d0e3598"/><p><strong>Q :</strong></p></td><td align="left" valign="top"><p>
Mon noyau gère les disques mémoires, mais les initialise à 0 ko
</p></td></tr><tr class="answer"><td align="left" valign="top"><p><strong>R :</strong></p></td><td align="left" valign="top"><p>
Quand cela arrive, un message du noyau apparaîtra au moment du
démarrage, du type :
</p><a id="d0e3604" class="indexterm"/><pre class="programlisting">
Ramdisk driver initialized : 16 ramdisks of 0K size
</pre><p>
C'est probablement parce que la taille a été fixée par les paramètres
du noyau à 0 au moment du démarrage. Cela peut être dû à un paramètre
oublié dans le fichier de configuration de <span class="command"><strong>LILO</strong></span> :
</p><pre class="programlisting">
ramdisk= 0
</pre><p>
Certaines vieilles distributions l'incluaient dans des exemples de
fichiers de configuration de <span class="command"><strong>LILO</strong></span>, et servaient à
écraser les paramètres antérieurs du noyau. Si vous trouvez une telle
ligne, supprimez-la.
</p><p>
Attention, si vous essayez d'utiliser un disque mémoire dont la taille
est de 0 ko, le comportement est imprévisible et peut conduire à une
panique (panic) du noyau.
</p></td></tr></tbody></table></div></div><div class="appendix"><h2 class="title"><a id="references"/>A. Ressources et pointeurs</h2><p>
Lorsque vous récupérez un paquetage, prenez toujours la dernière
version, sauf si vous avez de bonnes raisons pour ne pas le faire.
</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="distbootdisks"/>1. Disques d'amorce préfabriqués</h2></div></div></div><p>
Ce sont les sources des disques d'amorce des distributions.
<span class="emphasis"><em>Merci d'utiliser un site miroir pour réduire la charge sur ces
machines.</em></span>
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
<a class="ulink" href="http://distro.ibiblio.org/pub/Linux/distributions/slackware/slackware-current/bootdisks/" target="_top">Disques
d'amorce Slackware</a>, <a class="ulink" href="http://distro.ibiblio.org/pub/Linux/distributions/slackware/slackware-current/rootdisks/" target="_top">disques
racines</a> et <a class="ulink" href="http://www.slackware.com/getslack/" target="_top">sites
miroirs Slackware </a> ;
</p></li><li class="listitem"><p>
<a class="ulink" href="ftp://ftp.redhat.com/pub/redhat/linux/current/en/os/i386/images/" target="_top">Disques
d'amorce RedHat</a> et <a class="ulink" href="http://www.redhat.com/mirrors.html" target="_top">sites miroirs Red
Hat</a> ;
</p></li><li class="listitem"><p>
<a class="ulink" href="ftp://ftp.debian.org/debian/dists/stable/main/disks-i386/current/" target="_top">
Disques d'amorce Debian</a> et <a class="ulink" href="ftp://ftp.debian.org/debian/README.mirrors.html" target="_top">sites miroirs
Debian</a>.
</p></li><li class="listitem"><p>
<a class="ulink" href="http://www.linux-mandrake.com/en/ftp.php3" target="_top">Téléchargements
Mandrake</a>.
</p></li></ul></div><p>
En plus des disques d'amorce des distributions, les images de disques de
secours suivantes sont disponibles. Sauf précision contraire, elles sont
disponibles dans le répertoire <a class="ulink" href="http://www.ibiblio.org/pub/Linux/system/recovery/!INDEX.html" target="_top">
http://www.ibiblio.org/pub/Linux/system/recovery/!INDEX.html</a>.
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
<acronym class="acronym">RIP</acronym> est un système de démarrage/secours qui existe en
plusieurs versions : une qui va sur une disquette de 1,44 Mo et une qui
va sur un CD-ROM. Il supporte les grands fichiers et plusieurs programmes
pour la maintenance des disques et le secours. Il supporte ext2, ext3,
iso9660, msdos, ntfs, reiserfs, ufs et vfat. RIP est disponible sur
<a class="ulink" href="http://www.tux.org/pub/people/kent-robotti/looplinux/rip/index.html" target="_top">http://www.tux.org/pub/people/kent-robotti/looplinux/rip/index.html</a> ;
</p></li><li class="listitem"><p>
<acronym class="acronym">tomsrtbt</acronym>, par Tom Oehser, est un disque
d'amorce/racine unique à base de noyau 2.0, avec de nombreux programmes
de support et fonctionnalités. Il support IDE, SCSI, les bandes, les
adaptateurs réseaux, PCMCIA et plus encore. Environ 100 programmes
utilitaires et autres outils sont inclus, pour réparer et récupérer les
disques. Le paquetage contient aussi des scripts pour désassembler et
reconstruire les images afin de pouvoir ajouter des compléments si
nécessaire ;
</p></li><li class="listitem"><p>
<acronym class="acronym">rescue02</acronym>, par John Comyns, est un disque de secours à
base de noyau 1.3.84, qui supporte IDE, Adaptec 1542 et NCR53C7,8xx. Il
est à base de binaires ELF mais contient suffisamment de commandes pour
être utilisé sur n'importe quel système. Certains modules peuvent être
chargés après le démarrage pour d'autres cartes SCSI. Il ne fonctionnera
probablement pas sur les systèmes avec 4 Mo de RAM car il utilise
un disque mémoire de 3 Mo ; </p></li><li class="listitem"><p><acronym class="acronym">resque_disk-2.0.22</acronym>, par Sergei
Viznyuk, est un disque d'amorce/racine complet basé sur le noyau 2.0.22,
comprenant le support pour IDE, de nombreux contrôleurs SCSI, et
ELF/a.out. Il contient aussi nombre de modules et d'utilitaires pour
réparer et récupérer un disque dur ;
</p></li><li class="listitem"><p>
les images de <acronym class="acronym">cramdisk</acronym>, à base de noyau 2.0.33,
disponibles pour machines à 4 et 8 Mo de mémoire. Elles contiennent
l'émulation mathématique et le réseau (PPP et script dialin, NE2000,
3C509), ou le support pour lecteur ZIP sur port parallèle. Ces images de
disquettes peuvent démarrer un 386 avec 4 Mo de RAM. Le support de
MSDOS est inclus, ce qui fait que vous pouvez les récupérer sur le
réseau vers une partition DOS.
</p><p>
<a class="ulink" href="http://www.ibiblio.org/pub/Linux/system/recovery/images" target="_top">http://www.ibiblio.org/pub/Linux/system/recovery/images</a>
</p></li></ul></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e3714"/>2. Paquetages de secours</h2></div></div></div><p>
Plusieurs paquetages de création de disques de secours existent sur
www.ibiblio.org. Vous précisez à ces paquetages un ensemble de fichiers
à inclure, et le logiciel automatise (à divers degrés) la création d'un
disque d'amorce. Voir <a class="ulink" href="http://www.ibiblio.org/pub/Linux/system/recovery/!INDEX.html" target="_top">
http://www.ibiblio.org/pub/Linux/system/recovery/!INDEX.html</a>
pour plus d'informations. <span class="emphasis"><em>Vérifiez bien les dates des
fichiers</em></span> : certains paquetages n'ont pas été mis à jour
depuis des années et ne supportent pas la création d'un système racine
compressé sur disque mémoire. À notre connaissance, Yard est le seul
paquetage le permettant.
</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e3726"/>3. LILO : le chargeur Linux</h2></div></div></div><p>
<a id="d0e3731" class="indexterm"/>
Écrit par Werner Almesberger. Excellent chargeur d'amorce, dont la
documentation comprend des informations sur le contenu du secteur
d'amorce et les premières étapes du processus de démarrage.
</p><p>
Ftp depuis <a class="ulink" href="ftp://tsx-11.mit.edu/pub/linux/packages/lilo/" target="_top">ftp://tsx-11.mit.edu/pub/linux/packages/lilo/</a>. Il est
aussi disponible sur Metalab et ses miroirs.
</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e3741"/>4. Utilisation du disque mémoire</h2></div></div></div><p>
<a id="d0e3746" class="indexterm"/>
La documentation fournie avec le noyau Linux contient une excellente
description de la manière dont fonctionne le nouveau code de disque
mémoire. Voir
<code class="filename">/usr/src/linux/Documentation/ramdisk.txt</code>. C'est
écrit par Paul Gortmaker, et cela comprend une section sur la création d'un
disque mémoire compressé.
</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="d0e3753"/>5. Le processus de démarrage de Linux</h2></div></div></div><p>
<a id="d0e3758" class="indexterm"/>
Pour plus de détails sur le processus de démarrage de Linux, voici
quelques pointeurs :
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
Le Linux System Administrators' Guide (Guide des Administrateurs
Systèmes Linux) contient une section sur le démarrage. Voir <a class="ulink" href="http://www.traduc.org/docs/guides/lecture/sag/" target="_top">http://www.traduc.org/docs/guides/lecture/sag/</a> ;
</p></li><li class="listitem"><p>
La « Technical overview » (Description technique
succincte) de <span class="command"><strong>LILO</strong></span> <a class="ulink" href="http://www.ibiblio.org/pub/Linux/system/boot/lilo/lilo-t-21.ps.gz" target="_top">http://www.ibiblio.org/pub/Linux/system/boot/lilo/lilo-t-21.ps.gz</a>
décrit d'une manière extrêmement poussée le processus de démarrage, d'un
point de vue technique et bas niveau, jusqu'au moment où le noyau est
lancé ;
</p></li><li class="listitem"><p>
Le code source est le guide ultime. Ci-dessous se trouvent quelques
fichiers du noyau relatifs au processus de démarrage. Si vous avez le
code source du noyau Linux, vous pouvez les trouver sous
<code class="filename">/usr/src/linux</code> sur votre machine ; sinon, Shigio
Yamaguchi <code class="email"><<a class="email" href="mailto:shigio CHEZ wafu POINT netgate POINT net">shigio CHEZ wafu POINT netgate POINT net</a>></code> a
un très sympathique navigateur hypertexte pour le noyau à <a class="ulink" href="http://www.tamacom.com/tour/linux/index.html" target="_top">http://www.tamacom.com/tour/linux/index.html</a>. Voici
quelques fichiers correspondants :
</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">arch/i386/boot/bootsect.S,setup.S</span></dt><dd><p>
Contient le code assembleur pour le secteur d'amorce.
</p></dd><dt><span class="term">arch/i386/boot/compressed/misc.c</span></dt><dd><p>
Contient le code pour décompresser le noyau.
</p></dd><dt><span class="term">arch/i386/kernel/</span></dt><dd><p>
Répertoire contenant le code d'initialisation du noyau. setup.c
contient le mot disque mémoire.
</p></dd><dt><span class="term">drivers/block/rd.c</span></dt><dd><p>
Contient le gestionnaire de disque mémoire. Les procédures rd_load et
rd_load_image chargent des blocs depuis un périphérique vers un disque
mémoire. La procédure identify_ramdisk_image détermine le type de
système de fichiers trouvé, et s'il est compressé.
</p></dd></dl></div></li></ul></div></div></div><div class="appendix"><h2 class="title"><a id="d0e3812"/>B. Codes d'erreur du démarrage de LILO</h2><a id="d0e3815" class="indexterm"/><p>
Les questions sur ces erreurs sont posées si souvent sur Usenet que nous
les incluons ici en tant que service public. Ce résumé est extrait de la
Documentation Utilisateur de <span class="command"><strong>LILO</strong></span> de Werner
Almesberger, disponible sur <a class="ulink" href="http://www.ibiblio.org/pub/Linux/system/boot/lilo/lilo-u-21.ps.gz" target="_top">http://www.ibiblio.org/pub/Linux/system/boot/lilo/lilo-u-21.ps.gz</a>.
</p><p>
Quand <span class="command"><strong>LILO</strong></span> se charge, il affiche le mot
<span class="command"><strong>LILO</strong></span>. Chaque lettre est imprimée avant ou après
l'exécution d'une action spécifique. Si <span class="command"><strong>LILO</strong></span> échoue à
un moment donné, les lettres affichées jusque là peuvent être utilisées
pour identifier le problème.
</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">(rien)</span></dt><dd><p>
Aucun morceau de <span class="command"><strong>LILO</strong></span> n'a été chargé. Soit
<span class="command"><strong>LILO</strong></span> n'est pas installé, soit la partition sur
laquelle son secteur d'amorce se trouve n'est pas active.
</p></dd><dt><span class="term">L</span></dt><dd><p>
Le premier morceau du chargeur d'amorce a été chargé et démarré, mais
il ne peut charger le second morceau. Les codes d'erreur à deux
chiffres indiquent le type de problème. (Voir également la section
« Codes d'erreur disque ».) Ce cas indique en
général une panne de périphérique ou une incohérence de géométrie (c'est
à dire de mauvais paramètres disques).
</p></dd><dt><span class="term">LI</span></dt><dd><p>
Le premier morceau du chargeur d'amorce a pu charger le second
morceau, mais n'a pas réussi à l'exécuter. Cela peut être causé par
une incohérence de géométrie ou par le déplacement de /boot/boot.b
sans lancer l'installateur de carte.
</p></dd><dt><span class="term">LIL</span></dt><dd><p>
Le second morceau du chargeur d'amorce a été démarré, mais il ne
trouve pas la table de descripteurs dans le fichier carte. C'est en
général dû à une panne de périphérique ou une incohérence de
géométrie.
</p></dd><dt><span class="term">LIL?</span></dt><dd><p>
Le second morceau du chargeur d'amorce a été chargé à un adresse
incorrecte. C'est en général causé par une subtile incohérence de
géométrie, ou par le déplacement de <code class="filename">/boot/boot.b</code>
sans lancer l'installateur de carte.
</p></dd><dt><span class="term">LIL-</span></dt><dd><p>
La table de descripteurs est corrompue. Cela peut être dû à une
incohérence de géométrie ou au déplacement de
<code class="filename">/boot/map</code> sans lancer l'installateur.
</p></dd><dt><span class="term">LILO</span></dt><dd><p>
Tous les éléments de <span class="command"><strong>LILO</strong></span> ont été correctement chargés.
</p></dd></dl></div><p>
Si le <acronym class="acronym">BIOS</acronym> signale une erreur lorsque
<span class="command"><strong>LILO</strong></span> essaye de charger une image d'amorce, le code
d'erreur correspondant est affiché. Ces codes vont de
<span class="emphasis"><em>0x00</em></span> à <span class="emphasis"><em>0xbb</em></span>. Reportez-vous au
Guide Utilisateur de <span class="command"><strong>LILO</strong></span> pour leur explication.
</p></div><div class="appendix"><h2 class="title"><a id="listings"/>C. Exemple de contenu de répertoires sur un disque racine</h2><p>
<a id="d0e3916" class="indexterm"/>
Voici le contenu d'un exemple de système racine et d'une disquette
utilitaire.
</p><pre class="programlisting">
/:
drwx--x--x 2 root root 1024 Nov 1 15:39 bin
drwx--x--x 2 root root 4096 Nov 1 15:39 dev
drwx--x--x 3 root root 1024 Nov 1 15:39 etc
drwx--x--x 4 root root 1024 Nov 1 15:39 lib
drwx--x--x 5 root root 1024 Nov 1 15:39 mnt
drwx--x--x 2 root root 1024 Nov 1 15:39 proc
drwx--x--x 2 root root 1024 Nov 1 15:39 root
drwx--x--x 2 root root 1024 Nov 1 15:39 sbin
drwx--x--x 2 root root 1024 Nov 1 15:39 tmp
drwx--x--x 7 root root 1024 Nov 1 15:39 usr
drwx--x--x 5 root root 1024 Nov 1 15:39 var
/bin:
-rwx--x--x 1 root root 62660 Nov 1 15:39 ash
-rwx--x--x 1 root root 9032 Nov 1 15:39 cat
-rwx--x--x 1 root root 10276 Nov 1 15:39 chmod
-rwx--x--x 1 root root 9592 Nov 1 15:39 chown
-rwx--x--x 1 root root 23124 Nov 1 15:39 cp
-rwx--x--x 1 root root 23028 Nov 1 15:39 date
-rwx--x--x 1 root root 14052 Nov 1 15:39 dd
-rwx--x--x 1 root root 14144 Nov 1 15:39 df
-rwx--x--x 1 root root 69444 Nov 1 15:39 egrep
-rwx--x--x 1 root root 395 Nov 1 15:39 false
-rwx--x--x 1 root root 69444 Nov 1 15:39 fgrep
-rwx--x--x 1 root root 69444 Nov 1 15:39 grep
-rwx--x--x 3 root root 45436 Nov 1 15:39 gunzip
-rwx--x--x 3 root root 45436 Nov 1 15:39 gzip
-rwx--x--x 1 root root 8008 Nov 1 15:39 hostname
-rwx--x--x 1 root root 12736 Nov 1 15:39 ln
-rws--x--x 1 root root 15284 Nov 1 15:39 login
-rwx--x--x 1 root root 29308 Nov 1 15:39 ls
-rwx--x--x 1 root root 8268 Nov 1 15:39 mkdir
-rwx--x--x 1 root root 8920 Nov 1 15:39 mknod
-rwx--x--x 1 root root 24836 Nov 1 15:39 more
-rws--x--x 1 root root 37640 Nov 1 15:39 mount
-rwx--x--x 1 root root 12240 Nov 1 15:39 mt
-rwx--x--x 1 root root 12932 Nov 1 15:39 mv
-r-x--x--x 1 root root 12324 Nov 1 15:39 ps
-rwx--x--x 1 root root 5388 Nov 1 15:39 pwd
-rwx--x--x 1 root root 10092 Nov 1 15:39 rm
lrwxrwxrwx 1 root root 3 Nov 1 15:39 sh -> ash
-rwx--x--x 1 root root 25296 Nov 1 15:39 stty
-rws--x--x 1 root root 12648 Nov 1 15:39 su
-rwx--x--x 1 root root 4444 Nov 1 15:39 sync
-rwx--x--x 1 root root 19712 Nov 1 15:39 touch
-rwx--x--x 1 root root 395 Nov 1 15:39 true
-rws--x--x 1 root root 19084 Nov 1 15:39 umount
-rwx--x--x 1 root root 5368 Nov 1 15:39 uname
-rwx--x--x 3 root root 45436 Nov 1 15:39 zcat
/dev:
lrwxrwxrwx 1 root root 6 Nov 1 15:39 cdrom -> cdu31a
brw-rw-r-- 1 root root 15, 0 May 5 1998 cdu31a
crw------- 1 root root 4, 0 Nov 1 15:29 console
crw-rw-rw- 1 root uucp 5, 64 Sep 9 19:46 cua0
crw-rw-rw- 1 root uucp 5, 65 May 5 1998 cua1
crw-rw-rw- 1 root uucp 5, 66 May 5 1998 cua2
crw-rw-rw- 1 root uucp 5, 67 May 5 1998 cua3
brw-rw---- 1 root floppy 2, 0 Aug 8 13:54 fd0
brw-rw---- 1 root floppy 2, 36 Aug 8 13:54 fd0CompaQ
brw-rw---- 1 root floppy 2, 84 Aug 8 13:55 fd0D1040
brw-rw---- 1 root floppy 2, 88 Aug 8 13:55 fd0D1120
brw-rw---- 1 root floppy 2, 12 Aug 8 13:54 fd0D360
brw-rw---- 1 root floppy 2, 16 Aug 8 13:54 fd0D720
brw-rw---- 1 root floppy 2, 120 Aug 8 13:55 fd0D800
brw-rw---- 1 root floppy 2, 32 Aug 8 13:54 fd0E2880
brw-rw---- 1 root floppy 2, 104 Aug 8 13:55 fd0E3200
brw-rw---- 1 root floppy 2, 108 Aug 8 13:55 fd0E3520
brw-rw---- 1 root floppy 2, 112 Aug 8 13:55 fd0E3840
brw-rw---- 1 root floppy 2, 28 Aug 8 13:54 fd0H1440
brw-rw---- 1 root floppy 2, 124 Aug 8 13:55 fd0H1600
brw-rw---- 1 root floppy 2, 44 Aug 8 13:55 fd0H1680
brw-rw---- 1 root floppy 2, 60 Aug 8 13:55 fd0H1722
brw-rw---- 1 root floppy 2, 76 Aug 8 13:55 fd0H1743
brw-rw---- 1 root floppy 2, 96 Aug 8 13:55 fd0H1760
brw-rw---- 1 root floppy 2, 116 Aug 8 13:55 fd0H1840
brw-rw---- 1 root floppy 2, 100 Aug 8 13:55 fd0H1920
lrwxrwxrwx 1 root root 7 Nov 1 15:39 fd0H360 -> fd0D360
lrwxrwxrwx 1 root root 7 Nov 1 15:39 fd0H720 -> fd0D720
brw-rw---- 1 root floppy 2, 52 Aug 8 13:55 fd0H820
brw-rw---- 1 root floppy 2, 68 Aug 8 13:55 fd0H830
brw-rw---- 1 root floppy 2, 4 Aug 8 13:54 fd0d360
brw-rw---- 1 root floppy 2, 8 Aug 8 13:54 fd0h1200
brw-rw---- 1 root floppy 2, 40 Aug 8 13:54 fd0h1440
brw-rw---- 1 root floppy 2, 56 Aug 8 13:55 fd0h1476
brw-rw---- 1 root floppy 2, 72 Aug 8 13:55 fd0h1494
brw-rw---- 1 root floppy 2, 92 Aug 8 13:55 fd0h1600
brw-rw---- 1 root floppy 2, 20 Aug 8 13:54 fd0h360
brw-rw---- 1 root floppy 2, 48 Aug 8 13:55 fd0h410
brw-rw---- 1 root floppy 2, 64 Aug 8 13:55 fd0h420
brw-rw---- 1 root floppy 2, 24 Aug 8 13:54 fd0h720
brw-rw---- 1 root floppy 2, 80 Aug 8 13:55 fd0h880
brw-rw---- 1 root disk 3, 0 May 5 1998 hda
brw-rw---- 1 root disk 3, 1 May 5 1998 hda1
brw-rw---- 1 root disk 3, 2 May 5 1998 hda2
brw-rw---- 1 root disk 3, 3 May 5 1998 hda3
brw-rw---- 1 root disk 3, 4 May 5 1998 hda4
brw-rw---- 1 root disk 3, 5 May 5 1998 hda5
brw-rw---- 1 root disk 3, 6 May 5 1998 hda6
brw-rw---- 1 root disk 3, 64 May 5 1998 hdb
brw-rw---- 1 root disk 3, 65 May 5 1998 hdb1
brw-rw---- 1 root disk 3, 66 May 5 1998 hdb2
brw-rw---- 1 root disk 3, 67 May 5 1998 hdb3
brw-rw---- 1 root disk 3, 68 May 5 1998 hdb4
brw-rw---- 1 root disk 3, 69 May 5 1998 hdb5
brw-rw---- 1 root disk 3, 70 May 5 1998 hdb6
crw-r----- 1 root kmem 1, 2 May 5 1998 kmem
crw-r----- 1 root kmem 1, 1 May 5 1998 mem
lrwxrwxrwx 1 root root 12 Nov 1 15:39 modem -> ttyS1
lrwxrwxrwx 1 root root 12 Nov 1 15:39 mouse -> psaux
crw-rw-rw- 1 root root 1, 3 May 5 1998 null
crwxrwxrwx 1 root root 10, 1 Oct 5 20:22 psaux
brw-r----- 1 root disk 1, 1 May 5 1998 ram
brw-rw---- 1 root disk 1, 0 May 5 1998 ram0
brw-rw---- 1 root disk 1, 1 May 5 1998 ram1
brw-rw---- 1 root disk 1, 2 May 5 1998 ram2
brw-rw---- 1 root disk 1, 3 May 5 1998 ram3
brw-rw---- 1 root disk 1, 4 May 5 1998 ram4
brw-rw---- 1 root disk 1, 5 May 5 1998 ram5
brw-rw---- 1 root disk 1, 6 May 5 1998 ram6
brw-rw---- 1 root disk 1, 7 May 5 1998 ram7
brw-rw---- 1 root disk 1, 8 May 5 1998 ram8
brw-rw---- 1 root disk 1, 9 May 5 1998 ram9
lrwxrwxrwx 1 root root 4 Nov 1 15:39 ramdisk -> ram0
*** Je n'ai inclus de périphériques que pour les partitions IDE que
*** j'utilise. Si vous utilisez du SCSI, prenez les périphériques
*** /dev/sdXX à la place.
crw------- 1 root root 4, 0 May 5 1998 tty0
crw-w----- 1 root tty 4, 1 Nov 1 15:39 tty1
crw------- 1 root root 4, 2 Nov 1 15:29 tty2
crw------- 1 root root 4, 3 Nov 1 15:29 tty3
crw------- 1 root root 4, 4 Nov 1 15:29 tty4
crw------- 1 root root 4, 5 Nov 1 15:29 tty5
crw------- 1 root root 4, 6 Nov 1 15:29 tty6
crw------- 1 root root 4, 7 May 5 1998 tty7
crw------- 1 root tty 4, 8 May 5 1998 tty8
crw------- 1 root tty 4, 9 May 8 12:57 tty9
crw-rw-rw- 1 root root 4, 65 Nov 1 12:17 ttyS1
crw-rw-rw- 1 root root 1, 5 May 5 1998 zero
/etc:
-rw------- 1 root root 164 Nov 1 15:39 conf.modules
-rw------- 1 root root 668 Nov 1 15:39 fstab
-rw------- 1 root root 71 Nov 1 15:39 gettydefs
-rw------- 1 root root 389 Nov 1 15:39 group
-rw------- 1 root root 413 Nov 1 15:39 inittab
-rw------- 1 root root 65 Nov 1 15:39 issue
-rw-r--r-- 1 root root 746 Nov 1 15:39 ld.so.cache
-rw------- 1 root root 32 Nov 1 15:39 motd
-rw------- 1 root root 949 Nov 1 15:39 nsswitch.conf
drwx--x--x 2 root root 1024 Nov 1 15:39 pam.d
-rw------- 1 root root 139 Nov 1 15:39 passwd
-rw------- 1 root root 516 Nov 1 15:39 profile
-rwx--x--x 1 root root 387 Nov 1 15:39 rc
-rw------- 1 root root 55 Nov 1 15:39 shells
-rw------- 1 root root 774 Nov 1 15:39 termcap
-rw------- 1 root root 78 Nov 1 15:39 ttytype
lrwxrwxrwx 1 root root 15 Nov 1 15:39 utmp -> ../var/run/utmp
lrwxrwxrwx 1 root root 15 Nov 1 15:39 wtmp -> ../var/log/wtmp
/etc/pam.d:
-rw------- 1 root root 356 Nov 1 15:39 other
/lib:
-rwxr-xr-x 1 root root 45415 Nov 1 15:39 ld-2.0.7.so
lrwxrwxrwx 1 root root 11 Nov 1 15:39 ld-linux.so.2 -> ld-2.0.7.so
-rwxr-xr-x 1 root root 731548 Nov 1 15:39 libc-2.0.7.so
lrwxrwxrwx 1 root root 13 Nov 1 15:39 libc.so.6 -> libc-2.0.7.so
lrwxrwxrwx 1 root root 17 Nov 1 15:39 libcom_err.so.2 -> libcom_err.so.2.0
-rwxr-xr-x 1 root root 6209 Nov 1 15:39 libcom_err.so.2.0
-rwxr-xr-x 1 root root 153881 Nov 1 15:39 libcrypt-2.0.7.so
lrwxrwxrwx 1 root root 17 Nov 1 15:39 libcrypt.so.1 -> libcrypt-2.0.7.so
-rwxr-xr-x 1 root root 12962 Nov 1 15:39 libdl-2.0.7.so
lrwxrwxrwx 1 root root 14 Nov 1 15:39 libdl.so.2 -> libdl-2.0.7.so
lrwxrwxrwx 1 root root 16 Nov 1 15:39 libext2fs.so.2 -> libext2fs.so.2.4
-rwxr-xr-x 1 root root 81382 Nov 1 15:39 libext2fs.so.2.4
-rwxr-xr-x 1 root root 25222 Nov 1 15:39 libnsl-2.0.7.so
lrwxrwxrwx 1 root root 15 Nov 1 15:39 libnsl.so.1 -> libnsl-2.0.7.so
-rwx--x--x 1 root root 178336 Nov 1 15:39 libnss_files-2.0.7.so
lrwxrwxrwx 1 root root 21 Nov 1 15:39 libnss_files.so.1 -> libnss_files-2.0.7.so
lrwxrwxrwx 1 root root 14 Nov 1 15:39 libpam.so.0 -> libpam.so.0.64
-rwxr-xr-x 1 root root 26906 Nov 1 15:39 libpam.so.0.64
lrwxrwxrwx 1 root root 19 Nov 1 15:39 libpam_misc.so.0 -> libpam_misc.so.0.64
-rwxr-xr-x 1 root root 7086 Nov 1 15:39 libpam_misc.so.0.64
-r-xr-xr-x 1 root root 35615 Nov 1 15:39 libproc.so.1.2.6
lrwxrwxrwx 1 root root 15 Nov 1 15:39 libpwdb.so.0 -> libpwdb.so.0.54
-rw-r-r--- 1 root root 121899 Nov 1 15:39 libpwdb.so.0.54
lrwxrwxrwx 1 root root 19 Nov 1 15:39 libtermcap.so.2 -> libtermcap.so.2.0.8
-rwxr-xr-x 1 root root 12041 Nov 1 15:39 libtermcap.so.2.0.8
-rwxr-xr-x 1 root root 12874 Nov 1 15:39 libutil-2.0.7.so
lrwxrwxrwx 1 root root 16 Nov 1 15:39 libutil.so.1 -> libutil-2.0.7.so
lrwxrwxrwx 1 root root 14 Nov 1 15:39 libuuid.so.1 -> libuuid.so.1.1
-rwxr-xr-x 1 root root 8039 Nov 1 15:39 libuuid.so.1.1
drwx--x--x 3 root root 1024 Nov 1 15:39 modules
drwx--x--x 2 root root 1024 Nov 1 15:39 security
/lib/modules:
drwx--x--x 4 root root 1024 Nov 1 15:39 2.0.35
/lib/modules/2.0.35:
drwx--x--x 2 root root 1024 Nov 1 15:39 block
drwx--x--x 2 root root 1024 Nov 1 15:39 cdrom
/lib/modules/2.0.35/block:
drwx------ 1 root root 7156 Nov 1 15:39 loop.o
/lib/modules/2.0.35/cdrom:
drwx------ 1 root root 24108 Nov 1 15:39 cdu31a.o
/lib/security:
-rwx--x--x 1 root root 8771 Nov 1 15:39 pam_permit.so
*** Répertoires bases pour les montages
/mnt:
drwx--x--x 2 root root 1024 Nov 1 15:39 cdrom
drwx--x--x 2 root root 1024 Nov 1 15:39 floppy
/proc:
/root:
-rw------- 1 root root 176 Nov 1 15:39 .bashrc
-rw------- 1 root root 182 Nov 1 15:39 .cshrc
-rwx--x--x 1 root root 455 Nov 1 15:39 .profile
-rw------- 1 root root 4014 Nov 1 15:39 .tcshrc
/sbin:
-rwx--x--x 1 root root 23976 Nov 1 15:39 depmod
-rwx--x--x 2 root root 274600 Nov 1 15:39 e2fsck
-rwx--x--x 1 root root 41268 Nov 1 15:39 fdisk
-rwx--x--x 1 root root 9396 Nov 1 15:39 fsck
-rwx--x--x 2 root root 274600 Nov 1 15:39 fsck.ext2
-rwx--x--x 1 root root 29556 Nov 1 15:39 getty
-rwx--x--x 1 root root 6620 Nov 1 15:39 halt
-rwx--x--x 1 root root 23116 Nov 1 15:39 init
-rwx--x--x 1 root root 25612 Nov 1 15:39 insmod
-rwx--x--x 1 root root 10368 Nov 1 15:39 kerneld
-rwx--x--x 1 root root 110400 Nov 1 15:39 ldconfig
-rwx--x--x 1 root root 6108 Nov 1 15:39 lsmod
-rwx--x--x 2 root root 17400 Nov 1 15:39 mke2fs
-rwx--x--x 1 root root 4072 Nov 1 15:39 mkfs
-rwx--x--x 2 root root 17400 Nov 1 15:39 mkfs.ext2
-rwx--x--x 1 root root 5664 Nov 1 15:39 mkswap
-rwx--x--x 1 root root 22032 Nov 1 15:39 modprobe
lrwxrwxrwx 1 root root 4 Nov 1 15:39 reboot -> halt
-rwx--x--x 1 root root 7492 Nov 1 15:39 rmmod
-rwx--x--x 1 root root 12932 Nov 1 15:39 shutdown
lrwxrwxrwx 1 root root 6 Nov 1 15:39 swapoff -> swapon
-rwx--x--x 1 root root 5124 Nov 1 15:39 swapon
lrwxrwxrwx 1 root root 4 Nov 1 15:39 telinit -> init
-rwx--x--x 1 root root 6944 Nov 1 15:39 update
/tmp:
/usr:
drwx--x--x 2 root root 1024 Nov 1 15:39 bin
drwx--x--x 2 root root 1024 Nov 1 15:39 lib
drwx--x--x 3 root root 1024 Nov 1 15:39 man
drwx--x--x 2 root root 1024 Nov 1 15:39 sbin
drwx--x--x 3 root root 1024 Nov 1 15:39 share
lrwxrwxrwx 1 root root 10 Nov 1 15:39 tmp -> ../var/tmp
/usr/bin:
-rwx--x--x 1 root root 37164 Nov 1 15:39 afio
-rwx--x--x 1 root root 5044 Nov 1 15:39 chroot
-rwx--x--x 1 root root 10656 Nov 1 15:39 cut
-rwx--x--x 1 root root 63652 Nov 1 15:39 diff
-rwx--x--x 1 root root 12972 Nov 1 15:39 du
-rwx--x--x 1 root root 56552 Nov 1 15:39 find
-r-x--x--x 1 root root 6280 Nov 1 15:39 free
-rwx--x--x 1 root root 7680 Nov 1 15:39 head
-rwx--x--x 1 root root 8504 Nov 1 15:39 id
-r-sr-xr-x 1 root bin 4200 Nov 1 15:39 passwd
-rwx--x--x 1 root root 14856 Nov 1 15:39 tail
-rwx--x--x 1 root root 19008 Nov 1 15:39 tr
-rwx--x--x 1 root root 7160 Nov 1 15:39 wc
-rwx--x--x 1 root root 4412 Nov 1 15:39 whoami
/usr/lib:
lrwxrwxrwx 1 root root 17 Nov 1 15:39 libncurses.so.4 -> libncurses.so.4.2
-rw-r-r--- 1 root root 260474 Nov 1 15:39 libncurses.so.4.2
/usr/sbin:
-r-x--x--x 1 root root 13684 Nov 1 15:39 fuser
-rwx--x--x 1 root root 3876 Nov 1 15:39 mklost+found
/usr/share:
drwx--x--x 4 root root 1024 Nov 1 15:39 terminfo
/usr/share/terminfo:
drwx--x--x 2 root root 1024 Nov 1 15:39 l
drwx--x--x 2 root root 1024 Nov 1 15:39 v
/usr/share/terminfo/l:
-rw------- 1 root root 1552 Nov 1 15:39 linux
-rw------- 1 root root 1516 Nov 1 15:39 linux-m
-rw------- 1 root root 1583 Nov 1 15:39 linux-nic
/usr/share/terminfo/v:
-rw------- 2 root root 1143 Nov 1 15:39 vt100
-rw------- 2 root root 1143 Nov 1 15:39 vt100-am
/var:
drwx--x--x 2 root root 1024 Nov 1 15:39 log
drwx--x--x 2 root root 1024 Nov 1 15:39 run
drwx--x--x 2 root root 1024 Nov 1 15:39 tmp
/var/log:
-rw------- 1 root root 0 Nov 1 15:39 wtmp
/var/run:
-rw------- 1 root root 0 Nov 1 15:39 utmp
/var/tmp:
</pre></div><div class="appendix"><h2 class="title"><a id="utilitylist"/>D. Exemple de contenu des répertoires d'un disque utilitaire</h2><a id="d0e3925" class="indexterm"/><pre class="programlisting">
total 579
-rwxr-xr-x 1 root root 42333 Jul 28 19:05 cpio
-rwxr-xr-x 1 root root 32844 Aug 28 19:50 debugfs
-rwxr-xr-x 1 root root 103560 Jul 29 21:31 elvis
-rwxr-xr-x 1 root root 29536 Jul 28 19:04 fdisk
-rw-r-r--- 1 root root 128254 Jul 28 19:03 ftape.o
-rwxr-xr-x 1 root root 17564 Jul 25 03:21 ftmt
-rwxr-xr-x 1 root root 64161 Jul 29 20:47 grep
-rwxr-xr-x 1 root root 45309 Jul 29 20:48 gzip
-rwxr-xr-x 1 root root 23560 Jul 28 19:04 insmod
-rwxr-xr-x 1 root root 118 Jul 28 19:04 lsmod
lrwxrwxrwx 1 root root 5 Jul 28 19:04 mt -> mt-st
-rwxr-xr-x 1 root root 9573 Jul 28 19:03 mt-st
lrwxrwxrwx 1 root root 6 Jul 28 19:05 rmmod -> insmod
-rwxr-xr-x 1 root root 104085 Jul 28 19:05 tar
lrwxrwxrwx 1 root root 5 Jul 29 21:35 vi -> elvis
</pre></div><div class="footnotes"><br/><hr width="100" align="left"/><div id="ftn.d0e924" class="footnote"><p><a href="#d0e924" class="para"><sup class="para">[1] </sup></a>
La structure de répertoires présentée ici concerne une disquette racine
seule. Les vrais systèmes Linux obéissent à un ensemble de règles bien plus
complexes et contrôlées, appelé le <a class="ulink" href="http://www.pathname.com/fhs/2.2/" target="_top">Filesystem Hierarchy
Standard</a>, pour déterminer où les fichiers doivent aller.
</p></div></div></div></body></html>
|