Replace tar2iso example with badblocks example.
authorRichard W.M. Jones <rjones@redhat.com>
Sat, 17 Nov 2018 09:52:10 +0000 (09:52 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Sat, 17 Nov 2018 09:57:15 +0000 (09:57 +0000)
2019-fosdem/.gitignore
2019-fosdem/6450-cd.svg [deleted file]
2019-fosdem/6450-plugins-shell-what.html
2019-fosdem/6450-tarfile.svg [deleted file]
2019-fosdem/6500-shell-next
2019-fosdem/6500-shell.d/badblocks.sh.template [new file with mode: 0755]
2019-fosdem/9000-final.html
2019-fosdem/badblocks.sh [new file with mode: 0755]

index aa996d7..1a52eaa 100644 (file)
@@ -6,7 +6,7 @@
 /2200-partitioning.d/.root.img
 /2200-partitioning.d/root.img
 /2200-partitioning.d/swap.img
-/6500-shell.d/tar2iso.sh
+/6500-shell.d/badblocks.sh
 /nbdview/error?
 /nbdview/log?
 /nbdview/sock?
\ No newline at end of file
diff --git a/2019-fosdem/6450-cd.svg b/2019-fosdem/6450-cd.svg
deleted file mode 100644 (file)
index 881455e..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="192" height="192" viewBox="0 0 144 144">
-  <linearGradient id="c" x1="15.193" x2="120.855" y1="77.313" y2="77.313" gradientUnits="userSpaceOnUse">
-    <stop offset="0" stop-color="#fff"/>
-    <stop offset="1"/>
-  </linearGradient>
-  <linearGradient id="d" x1="30.131" x2="101.383" y1="114.274" y2="39.161" gradientUnits="userSpaceOnUse">
-    <stop offset=".011" stop-color="#98aff2"/>
-    <stop offset=".096" stop-color="#9db3f3"/>
-    <stop offset=".199" stop-color="#acbff5"/>
-    <stop offset=".31" stop-color="#c4d2f8"/>
-    <stop offset=".428" stop-color="#e6ecfc"/>
-    <stop offset=".5" stop-color="#fff"/>
-    <stop offset=".519" stop-color="#f7f9fe"/>
-    <stop offset=".611" stop-color="#d5defa"/>
-    <stop offset=".704" stop-color="#bacaf6"/>
-    <stop offset=".799" stop-color="#a7bbf4"/>
-    <stop offset=".897" stop-color="#9cb2f2"/>
-    <stop offset="1" stop-color="#98aff2"/>
-  </linearGradient>
-  <linearGradient id="a">
-    <stop offset=".011" stop-color="#b1caff"/>
-    <stop offset=".111" stop-color="#b6cdff"/>
-    <stop offset=".232" stop-color="#c5d8ff"/>
-    <stop offset=".363" stop-color="#dde8ff"/>
-    <stop offset=".5" stop-color="#fff"/>
-    <stop offset=".526" stop-color="#f8faff"/>
-    <stop offset=".64" stop-color="#dde6ff"/>
-    <stop offset=".755" stop-color="#cad8ff"/>
-    <stop offset=".874" stop-color="#bfd0ff"/>
-    <stop offset="1" stop-color="#bbcdff"/>
-  </linearGradient>
-  <linearGradient id="e" x1="1065.43" x2="1158.018" y1="95.011" y2="2.423" gradientTransform="matrix(.849 -.5284 .5284 .849 -910.0727 618.7241)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
-  <linearGradient id="f" x1="1073.158" x2="1164.618" y1="102.772" y2="11.311" gradientTransform="matrix(.849 -.5284 .5284 .849 -910.0727 618.7241)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
-  <linearGradient id="g" x1="75.36" x2="167.626" y1="92.327" y2="241.508" gradientUnits="userSpaceOnUse">
-    <stop offset="0" stop-color="#fff"/>
-    <stop offset="1" stop-color="#9195f2"/>
-  </linearGradient>
-  <linearGradient id="b">
-    <stop offset="0" stop-color="#9ab1ff"/>
-    <stop offset="1" stop-color="#444973"/>
-  </linearGradient>
-  <linearGradient id="h" x1="14.187" x2="117.257" y1="76.693" y2="76.693" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
-  <linearGradient id="i" x1="57.506" x2="73.948" y1="76.751" y2="76.751" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
-  <linearGradient id="j" x1="49.926" x2="81.527" y1="76.751" y2="76.751" gradientUnits="userSpaceOnUse">
-    <stop offset="0" stop-color="#9ab1ff"/>
-    <stop offset="1" stop-color="#626aa4"/>
-  </linearGradient>
-  <g fill="#fff" stroke-width="0">
-    <path fill="none" d="m144 144h-144v-144h144z"/>
-    <path fill="#000" d="m103.995 122.896c0 8.636-23.175 15.634-51.762 15.634-28.588 0-51.764-6.999-51.764-15.634 0-8.633 23.175-15.633 51.764-15.633 28.587 0 51.762 7 51.762 15.633z" opacity=".2"/>
-    <path fill="url(#c)" d="m35.905 25.71c-23.226 14.456-27.676 49.278-9.936 77.78 17.738 28.5 50.945 39.883 74.173 25.426 23.228-14.458 27.677-49.276 9.938-77.778s-50.946-39.886-74.175-25.428zm36.384 58.455c-3.084 1.919-7.494.405-9.848-3.376-2.353-3.783-1.761-8.403 1.32-10.322 3.084-1.92 7.49-.41 9.845 3.374 2.354 3.783 1.766 8.406-1.317 10.325z" opacity=".2"/>
-    <path fill="url(#d)" d="m33.609 25.148c-23.228 14.458-27.678 49.28-9.939 77.78 17.737 28.497 50.947 39.884 74.175 25.426 23.227-14.456 27.677-49.281 9.939-77.778-17.739-28.501-50.949-39.886-74.175-25.428zm36.38 58.452c-3.083 1.918-7.492.408-9.847-3.374-2.354-3.783-1.762-8.408 1.32-10.325 3.083-1.92 7.491-.408 9.846 3.377 2.354 3.781 1.763 8.403-1.32 10.322z"/>
-    <path fill="url(#e)" d="m60.142 80.226c-.219-.352-.398-.709-.572-1.072l-30.372 31.511c10.303 12.641 23.903 20.736 37.559 23.17l-1.525-49.653c-1.94-.536-3.815-1.908-5.09-3.956z"/>
-    <path fill="url(#f)" d="m68.212 70.19 30.373-31.514c-10.144-10.669-22.765-17.367-35.34-19.245l1.526 49.652c1.161.063 2.342.445 3.441 1.107z"/>
-    <path d="m60.142 80.226c-.219-.352-.398-.709-.572-1.072l-30.372 31.511c10.303 12.641 23.903 20.736 37.559 23.17l-1.525-49.653c-1.94-.536-3.815-1.908-5.09-3.956z" opacity=".8"/>
-    <path d="m68.212 70.19 30.373-31.514c-10.144-10.669-22.765-17.367-35.34-19.245l1.526 49.652c1.161.063 2.342.445 3.441 1.107z" opacity=".8"/>
-    <g opacity=".4">
-      <path d="m61.361 81.637c-.281-.3-.538-.609-.775-.93l-20.802 40.32c12.423 9.997 26.838 14.469 40.005 13.19l-12.82-49.967c-1.914-.011-3.964-.887-5.608-2.614z" opacity=".8"/>
-      <path d="m66.504 69.235 20.8-40.325c-11.819-8.038-25.014-11.367-37.055-9.814l12.821 49.96c1.087-.254 2.27-.188 3.434.18z" opacity=".8"/>
-    </g>
-    <g opacity=".68">
-      <path d="m67.781 83.536c-.334.072-.675.1-1.016.111l24.713 46.987c12.397-5.098 21.108-15.822 24.788-29.236l-44.396-21.445c-.692 1.82-2.125 3.177-4.088 3.583z" opacity=".9"/>
-      <path d="m59.734 70.282-24.716-46.993c-10.626 5.847-17.984 16.178-21.045 28.698l44.397 21.445c.182-1.209.657-2.291 1.365-3.15z" opacity=".9"/>
-    </g>
-    <path fill="url(#g)" d="m24.177 102.612c17.497 28.113 50.368 39.383 73.28 25.122 22.91-14.259 27.316-48.731 9.819-76.844-17.497-28.111-50.372-39.381-73.282-25.122-22.912 14.261-27.314 48.732-9.817 76.844zm80.552-50.136c16.623 26.707 12.649 59.326-8.857 72.711-8.838 5.501-19.872 7.095-31.069 4.489-15.048-3.502-28.927-13.944-38.079-28.649-16.623-26.707-12.65-59.326 8.856-72.711s52.526-2.547 69.149 24.161z"/>
-    <path fill="url(#h)" d="m68.213 17.691c16.652 3.875 31.943 15.32 41.952 31.401 18.448 29.642 13.523 66.165-10.979 81.416-24.503 15.251-59.448 3.543-77.898-26.098-7.343-11.796-11.192-25.042-11.192-37.835 0-4.646.508-9.231 1.54-13.667 2.996-12.874 10.323-23.498 20.632-29.914 10.307-6.416 23.072-8.299 35.945-5.303zm28.86 109.421c22.625-14.083 26.978-48.139 9.697-75.906-17.284-27.769-49.76-38.9-72.387-24.815-22.631 14.086-26.983 48.138-9.698 75.906 17.282 27.766 49.757 38.901 72.388 24.815z"/>
-    <path fill="url(#i)" d="m59.133 80.857c2.776 4.459 7.994 6.249 11.631 3.986 3.636-2.263 4.336-7.736 1.561-12.197-2.779-4.462-7.998-6.253-11.635-3.989-3.636 2.264-4.334 7.736-1.556 12.2zm9.795-6.098c1.557 2.502 1.427 5.627-.277 6.688-1.705 1.061-4.565-.203-6.122-2.703-.73-1.174-1.09-2.486-1.09-3.658 0-1.325.46-2.47 1.365-3.034 1.704-1.061 4.566.205 6.125 2.707z"/>
-    <path fill="url(#j)" d="m53.051 84.642c5.338 8.575 15.368 12.014 22.356 7.663 6.991-4.35 8.331-14.866 2.994-23.44-5.337-8.577-15.365-12.018-22.354-7.667-6.99 4.352-8.333 14.871-2.996 23.445zm3.895-2.424c-3.699-5.942-2.769-13.229 2.073-16.244 4.843-3.013 11.79-.63 15.488 5.313 3.698 5.94 2.767 13.225-2.074 16.239-4.843 3.014-11.792.631-15.487-5.308z" opacity=".5"/>
-  </g>
-</svg>
index a1ea8ea..caa0bbd 100644 (file)
@@ -4,6 +4,38 @@
 
 <h1>What shell script?</h1>
 
-<img src="6450-tarfile.svg" width="300">
+<style>
+pre {
+    font-size: 70%;
+    background: -webkit-linear-gradient(#000, #eee);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+}
+</style>
 
-<img src="6450-cd.svg" width="300">
+<pre>
+BADBLOCKS(8)                System Manager's Manual               BADBLOCKS(8)
+
+NAME
+       badblocks - search a device for bad blocks
+
+SYNOPSIS
+       badblocks  [  -svwnfBX  ]  [ -b block_size ] [ -c blocks_at_once ] [ -d
+       read_delay_factor ] [ -e max_bad_blocks ] [ -i input_file ] [  -o  out‐
+       put_file  ] [ -p num_passes ] [ -t test_pattern ] device [ last_block ]
+       [ first_block ]
+
+DESCRIPTION
+       badblocks is used to search for bad blocks on a device (usually a  disk
+       partition).   device  is  the  special file corresponding to the device
+       (e.g /dev/hdc1).  last_block is the last block to be checked; if it  is
+       not  specified,  the  last  block  on  the device is used as a default.
+       first_block is an optional parameter specifying the starting block num‐
+       ber  for  the  test, which allows the testing to start in the middle of
+       the disk.  If it is not specified the first block on the disk  is  used
+       as a default.
+
+       Important  note:  If  the output of badblocks is going to be fed to the
+       e2fsck or mke2fs programs, it is important that the block size is prop‐
+       erly  specified,  since  the block numbers which are generated are very
+</pre>
diff --git a/2019-fosdem/6450-tarfile.svg b/2019-fosdem/6450-tarfile.svg
deleted file mode 100644 (file)
index ae57d1a..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.1"
-   width="48"
-   height="48"
-   id="svg4297">
-  <defs
-     id="defs4299">
-    <radialGradient
-       cx="5"
-       cy="41.5"
-       r="5"
-       fx="5"
-       fy="41.5"
-       id="radialGradient3314"
-       xlink:href="#linearGradient3681"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.5938225,0,0,1.5366531,41.140892,-103.93618)" />
-    <linearGradient
-       id="linearGradient3703">
-      <stop
-         id="stop3705"
-         style="stop-color:black;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop3711"
-         style="stop-color:black;stop-opacity:1"
-         offset="0.5" />
-      <stop
-         id="stop3707"
-         style="stop-color:black;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="17.554192"
-       y1="46.000275"
-       x2="17.554192"
-       y2="34.999718"
-       id="linearGradient3312"
-       xlink:href="#linearGradient3703"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.7570316,0,0,1.3969574,-17.394014,-16.411698)" />
-    <linearGradient
-       id="linearGradient3681">
-      <stop
-         id="stop3683"
-         style="stop-color:black;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3685"
-         style="stop-color:black;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <radialGradient
-       cx="5"
-       cy="41.5"
-       r="5"
-       fx="5"
-       fy="41.5"
-       id="radialGradient3310"
-       xlink:href="#linearGradient3681"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.5938225,0,0,1.5366531,-6.6594735,-103.93618)" />
-    <linearGradient
-       id="linearGradient3295">
-      <stop
-         id="stop3297"
-         style="stop-color:#c9af8b;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3299"
-         style="stop-color:#ad8757;stop-opacity:1"
-         offset="0.23942046" />
-      <stop
-         id="stop3301"
-         style="stop-color:#c2a57f;stop-opacity:1"
-         offset="0.27582464" />
-      <stop
-         id="stop3303"
-         style="stop-color:#9d7d53;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="15.464298"
-       y1="7.9756851"
-       x2="15.464298"
-       y2="45.04248"
-       id="linearGradient3293"
-       xlink:href="#linearGradient3295"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient3199">
-      <stop
-         id="stop3201"
-         style="stop-color:#dac197;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3203"
-         style="stop-color:#c1a581;stop-opacity:1"
-         offset="0.23942046" />
-      <stop
-         id="stop3205"
-         style="stop-color:#dbc298;stop-opacity:1"
-         offset="0.27582464" />
-      <stop
-         id="stop3207"
-         style="stop-color:#a68b60;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="24.822832"
-       y1="15.377745"
-       x2="24.996943"
-       y2="37.27668"
-       id="linearGradient3197"
-       xlink:href="#linearGradient3199"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2822251,0,0,1.5572619,-6.0701918,-15.290756)" />
-    <linearGradient
-       id="linearGradient4559">
-      <stop
-         id="stop4561"
-         style="stop-color:white;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop4563"
-         style="stop-color:white;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="23.451576"
-       y1="30.554907"
-       x2="43.00663"
-       y2="45.934479"
-       id="linearGradient2659"
-       xlink:href="#linearGradient4559"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2822251,0,0,1.1746872,-6.0701918,-5.3031677)" />
-    <linearGradient
-       id="linearGradient3827">
-      <stop
-         id="stop3829"
-         style="stop-color:white;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4295"
-         style="stop-color:white;stop-opacity:1"
-         offset="0.3021296" />
-      <stop
-         id="stop4293"
-         style="stop-color:white;stop-opacity:0.6901961"
-         offset="0.34361121" />
-      <stop
-         id="stop3832"
-         style="stop-color:white;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="26"
-       y1="22"
-       x2="26"
-       y2="8"
-       id="linearGradient3834"
-       xlink:href="#linearGradient3827"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       id="linearGradient3275">
-      <stop
-         id="stop3277"
-         style="stop-color:white;stop-opacity:0"
-         offset="0" />
-      <stop
-         id="stop3283"
-         style="stop-color:white;stop-opacity:1"
-         offset="0.245" />
-      <stop
-         id="stop3285"
-         style="stop-color:white;stop-opacity:1"
-         offset="0.77350003" />
-      <stop
-         id="stop3279"
-         style="stop-color:white;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="44.994774"
-       y1="17.5"
-       x2="3.0052247"
-       y2="17.5"
-       id="linearGradient3281"
-       xlink:href="#linearGradient3275"
-       gradientUnits="userSpaceOnUse"
-       spreadMethod="reflect" />
-  </defs>
-  <g
-     id="layer1">
-    <g
-       transform="matrix(0.9926623,0,0,0.9761474,0.2751901,1.2929634)"
-       id="g3305"
-       style="opacity:0.4;display:inline">
-      <rect
-         width="2.9601951"
-         height="15.366531"
-         x="-3.6903627"
-         y="-47.848343"
-         transform="scale(-1,-1)"
-         id="rect2484"
-         style="fill:url(#radialGradient3310);fill-opacity:1;stroke:none" />
-      <rect
-         width="40.41172"
-         height="15.366531"
-         x="3.6903627"
-         y="32.481812"
-         id="rect2486"
-         style="fill:url(#linearGradient3312);fill-opacity:1;stroke:none" />
-      <rect
-         width="2.9601951"
-         height="15.366531"
-         x="44.110001"
-         y="-47.848343"
-         transform="scale(1,-1)"
-         id="rect3444"
-         style="fill:url(#radialGradient3314);fill-opacity:1;stroke:none;display:inline" />
-    </g>
-    <path
-       d="m 9.010725,8.5 29.497723,0 c 1.721985,0 2.496922,-0.2865505 2.991552,1 l 3.001734,8 0,25.673912 c 0,1.553304 0.10293,1.315976 -1.619063,1.315976 l -37.7653422,0 c -1.7219924,0 -1.6190635,0.237328 -1.6190635,-1.315976 L 3.4982653,17.5 6.5,9.5 c 0.4808316,-1.2605622 0.7887325,-1 2.510725,-1 z"
-       id="path2488"
-       style="fill:url(#linearGradient3197);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3293);stroke-width:0.99420077;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-    <path
-       d="m 9.948194,9.5129459 27.652872,0 c 1.614293,0 2.61338,0.5565361 3.289521,2.0860281 l 2.32894,6.419721 0,23.144557 c 0,1.460676 -0.818759,2.196085 -2.433056,2.196085 l -33.7332031,0 c -1.6142934,0 -2.2727761,-0.808827 -2.2727761,-2.269504 l 0,-23.071138 2.2538109,-6.55736 C 7.4850649,10.275943 8.3338968,9.5129459 9.948194,9.5129459 z"
-       id="path2490"
-       style="opacity:0.50549454;fill:none;stroke:url(#linearGradient2659);stroke-width:0.74211526;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:block;overflow:visible" />
-    <path
-       d="m 22,8 c 1.333333,0 2.666667,0 4,0 0,4.666667 0,9.333333 0,14 -0.393729,0 -0.787458,0 -1.181187,0 -0.403125,0 -0.80625,0 -1.209375,0 -0.324529,0 -0.649057,0 -0.973585,0 C 22.423902,22 22.211951,22 22,22 22,17.333333 22,12.666667 22,8 z"
-       id="rect3326"
-       style="opacity:0.4;fill:url(#linearGradient3834);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       d="m 8.8577805,41 c 0.5320002,0 1.0640004,0 1.5960005,0 0,-1.732 0,-3.463999 0,-5.195999 0.350387,-0.08546 1.120394,0.248701 0.96,-0.347539 -0.102171,-0.33549 0.226561,-1.101884 -0.208523,-1.104461 -0.485647,0.0498 -0.932764,0.06107 -0.751477,-0.556062 0,-0.554647 0,-1.109293 0,-1.663939 -0.5320001,0 -1.0640003,0 -1.5960005,0 0,0.74 0,1.480001 0,2.220001 -0.4271961,-0.005 -0.9818294,-0.137459 -0.7799998,0.486555 0.085799,0.351863 -0.2490168,1.124339 0.3475392,0.965445 0.6265813,-0.204397 0.3964847,0.447885 0.4324606,0.834094 0,1.453968 0,2.907937 0,4.361905 z M 18.959156,34.352001 c -0.488,0 -0.976,0 -1.464001,0 0.0024,0.555388 0.107596,1.227788 -0.437249,0.416063 -1.636804,-1.296088 -4.374285,-0.300099 -4.92452,1.689976 -0.661604,1.81115 0.300763,4.17561 2.285367,4.595045 1.094162,0.292268 2.36525,0.0092 3.076403,-0.917085 0.04748,0.379533 -0.208965,1.062996 0.417046,0.864 0.308688,-0.109805 1.075603,0.238618 1.046954,-0.208523 0,-2.146492 0,-4.292984 0,-6.439476 z m -3.468,1.307999 c 1.580814,-0.09128 2.457037,1.889634 1.6725,3.144 -0.780128,1.464019 -3.38279,1.034012 -3.57968,-0.649758 -0.2612,-1.205372 0.595891,-2.550989 1.90718,-2.494242 z M 20.149031,41 c 0.532,0 1.064,0 1.596,0 0.02695,-1.40671 -0.05762,-2.820653 0.04952,-4.222235 -0.03929,-1.150281 1.695641,-0.622862 1.378482,-1.671335 0.04606,-0.582734 0.107656,-1.301403 -0.765469,-0.817407 -0.801504,0.592003 -0.68196,0.734239 -0.933546,0.06298 -0.441662,0 -0.883324,0 -1.324985,0 0,2.216 0,4.431999 0,6.647999 z m 4.059749,0 c 0.532001,0 1.064001,0 1.596001,0 0,-0.512 0,-1.024 0,-1.535999 -0.532,0 -1.064,0 -1.596001,0 0,0.511999 0,1.023999 0,1.535999 z m 8.295565,-6.647999 c -0.003,0.513942 0.117021,1.189699 -0.411938,0.400875 -1.628193,-1.253571 -4.301621,-0.305806 -4.845656,1.666025 -0.659185,1.848746 0.330662,4.308171 2.388984,4.669669 1.042827,0.237804 2.216921,-0.0832 2.868608,-0.96457 0.169849,1.428755 -1.238328,2.555123 -2.59132,2.036038 -0.634102,-0.357712 -1.131566,-0.786701 -1.909789,-0.620038 -0.627191,-0.06916 -1.188855,-0.02657 -0.462605,0.689528 1.391779,1.957394 5.010526,1.964288 6.118152,-0.290715 0.591171,-1.493473 0.298261,-3.134065 0.369562,-4.701095 0,-0.961906 0,-1.923811 0,-2.885717 -0.507999,0 -1.015999,0 -1.523998,0 z M 30.512344,35.66 c 1.457805,-0.09191 2.302931,1.617593 1.784062,2.857499 -0.50064,1.638565 -3.249057,1.530402 -3.556995,-0.183606 -0.348044,-1.205308 0.365878,-2.744812 1.772932,-2.673893 l 10e-7,0 z M 34.858219,41 c 1.688,0 3.376,0 5.063999,0 0,-0.476 0,-0.952001 0,-1.428001 -1.051999,0 -2.103998,0 -3.155998,0 0.975999,-1.264 1.951998,-2.528 2.927998,-3.792 0,-0.475999 0,-0.951999 0,-1.427998 -1.5,0 -3,0 -4.5,0 0,0.475999 0,0.951999 0,1.427998 0.863999,0 1.727999,0 2.591999,0 -0.975999,1.264 -1.951999,2.528 -2.927998,3.792 0,0.476 0,0.952001 0,1.428001 z"
-       id="text3329"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;opacity:0.4;fill:black;fill-opacity:1;stroke:none;display:inline;font-family:URW Gothic L;-inkscape-font-specification:URW Gothic L Semi-Bold" />
-    <path
-       d="m 3.5052248,17.5 40.9895502,0"
-       id="path3273"
-       style="opacity:0.4;fill:none;stroke:url(#linearGradient3281);stroke-width:1px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
-  </g>
-</svg>
index 0fd1dd0..00e3d49 100755 (executable)
@@ -3,19 +3,16 @@
 source functions
 
 # Title.
-export title="Writing tar2iso.sh"
+export title="Writing badblocks.sh"
 
 # History.
-remember 'emacs tar2iso.sh &'
-remember 'nbdkit sh ./tar2iso.sh file=~/nbdkit-1.9.0.tar.gz'
+remember 'emacs badblocks.sh &'
+remember 'nbdkit sh ./badblocks.sh'
 remember 'sudo nbd-client -b 512 localhost /dev/nbd0'
-remember 'sudo mount /dev/nbd0 /tmp/mnt'
+remember 'sudo badblocks /dev/nbd0'
 
 ./restore
 pushd 6500-shell.d >/dev/null
-rm -f tar2iso.sh
-echo '#!/bin/bash' > tar2iso.sh
-echo >> tar2iso.sh
-chmod +x tar2iso.sh
+cp badblocks.sh.template badblocks.sh
 terminal
 popd >/dev/null
diff --git a/2019-fosdem/6500-shell.d/badblocks.sh.template b/2019-fosdem/6500-shell.d/badblocks.sh.template
new file mode 100755 (executable)
index 0000000..1435c36
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+case "$1" in
+
+
+    *) exit 2 ;;
+esac
index e4e1c8c..7de2cb5 100644 (file)
@@ -8,6 +8,7 @@
 <li> Loopback mounts &mdash; don't do much.
 <li> Loopback mounts with NBD and nbdkit &mdash; infinitely flexible.
 <li> Lots of plugins, or write your own.
+<li> Software development and testing.
 <li> nbdkit 1.8 now available in all major Linux distros.
 <li> <a href="https://github.com/libguestfs/nbdkit">https://github.com/libguestfs/nbdkit</a>
 <li> This talk: <a href="http://git.annexia.org/?p=libguestfs-talks.git">http://git.annexia.org/?p=libguestfs-talks.git</a>
diff --git a/2019-fosdem/badblocks.sh b/2019-fosdem/badblocks.sh
new file mode 100755 (executable)
index 0000000..863c6b5
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+case "$1" in
+    open) ;;
+    get_size) echo 64M ;;
+    pread)
+        if [ $4 -le 100000 ] && [ $(( $4+$3 )) -gt 100000 ]; then
+            echo EIO Bad block >&2
+            exit 1
+        else
+            dd if=/dev/zero count=$3 iflag=count_bytes
+        fi ;;
+    *) exit 2 ;;
+esac