Fixing various css problems.

master
Ingolf Wagner 2022-10-20 10:46:40 +02:00
parent 7433e20e01
commit b8c9f03288
Signed by: palo
GPG Key ID: 76BF5F1928B9618B
13 changed files with 1119 additions and 177 deletions

View File

@ -1,6 +1,6 @@
[tech.ingolf-wagner.de](https://tech.ingolf-wagner.de) source code. [tech.ingolf-wagner.de](https://tech.ingolf-wagner.de) source code.
``` ```
rake run_server nix run # to run local server
rake publish nix run ".#publish" # to publish site
``` ```

View File

@ -1,69 +1,350 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> <svg
<svg viewBox="0 0 608 588" xmlns="http://www.w3.org/2000/svg" xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape" xmlns:xlink="http://www.w3.org/1999/xlink"> viewBox="0 0 592.06694 460.41859"
<defs id="defs_block"> version="1.1"
<filter height="1.504" id="filter_blur" inkspace:collect="always" width="1.1575" x="-0.07875" y="-0.252"> id="svg60567"
<feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always" stdDeviation="4.2" /> sodipodi:docname="2subnets.svg"
</filter> width="156.65105mm"
</defs> height="121.81908mm"
<title>blockdiag</title> inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
<desc> xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<sodipodi:namedview
id="namedview60569"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
units="mm"
lock-margins="true"
fit-margin-top="1.5"
fit-margin-left="1.5"
fit-margin-right="1.5"
fit-margin-bottom="1.5"
inkscape:zoom="1.9013605"
inkscape:cx="175.66369"
inkscape:cy="202.22361"
inkscape:window-width="2560"
inkscape:window-height="1440"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg60567"
inkscape:document-units="mm" />
<defs
id="defs_block" />
<title
id="title60489">blockdiag</title>
<desc
id="desc60491">
nwdiag { nwdiag {
internet [shape = cloud]; internet [shape = cloud];
internet -- Gibson [address = "my.awesome.dns.com"] internet -- Gibson [address = &quot;my.awesome.dns.com&quot;]
network private { network private {
address = "10.1.1.0/24"; address = &quot;10.1.1.0/24&quot;;
Gibson [address = "10.1.1.1"]; Gibson [address = &quot;10.1.1.1&quot;];
Hackbardt [address = "10.1.1.2"]; Hackbardt [address = &quot;10.1.1.2&quot;];
HAL [address = "10.1.1.3"]; HAL [address = &quot;10.1.1.3&quot;];
} }
network "private (subnet)" { network &quot;private (subnet)&quot; {
Hackbardt [address = "10.2.2.0/24"]; Hackbardt [address = &quot;10.2.2.0/24&quot;];
HAL [address = "10.2.3.0/24"]; HAL [address = &quot;10.2.3.0/24&quot;];
} }
} }
</desc> </desc>
<path d="M 171 178 A16,8 0 0 1 187 170 A16,6 0 0 1 227 170 A16,8 0 0 1 243 178 A16,8 0 0 1 243 194 A16,20 0 0 1 219 194 A16,20 0 0 1 195 194 A16,20 0 0 1 171 194 A16,8 0 0 1 171 178" fill="rgb(0,0,0)" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" /> <path
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="104" x="155" y="306" /> d="M 78.601518,289.66929 H 534.60152 a 2,4 0 0 1 0,8 H 78.601518 a 2,4 0 0 1 0,-8"
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="104" x="307" y="450" /> fill="#b9cbe4"
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="104" x="459" y="450" /> stroke="#000000"
<path d="M 131 391 L 587 391 A2,4 0 0 1 587 399 L 131 399 A2,4 0 0 1 131 391" fill="rgb(0,0,0)" style="filter:url(#filter_blur)" /> id="path60505" />
<path d="M 283 535 L 587 535 A2,4 0 0 1 587 543 L 283 543 A2,4 0 0 1 283 535" fill="rgb(0,0,0)" style="filter:url(#filter_blur)" /> <path
<path d="M 128 388 L 584 388 A2,4 0 0 1 584 396 L 128 396 A2,4 0 0 1 128 388" fill="rgb(185,203,228)" stroke="rgb(0,0,0)" /> d="m 534.60152,297.66929 a 2,4 0 0 1 0,-8"
<path d="M 584 396 A2,4 0 0 1 584 388" fill="none" stroke="rgb(0,0,0)" /> fill="none"
<path d="M 128 388 L 584 388" fill="none" stroke="none" /> stroke="#000000"
<path d="M 280 532 L 584 532 A2,4 0 0 1 584 540 L 280 540 A2,4 0 0 1 280 532" fill="rgb(185,203,228)" stroke="rgb(0,0,0)" /> id="path60507" />
<path d="M 584 540 A2,4 0 0 1 584 532" fill="none" stroke="rgb(0,0,0)" /> <path
<path d="M 280 532 L 584 532" fill="none" stroke="none" /> d="M 78.601518,289.66929 H 534.60152"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="42" x="99.0" y="391">private</text> fill="none"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="66" x="87.0" y="404">10.1.1.0/24</text> stroke="none"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="108" x="218.0" y="542">"private (subnet)"</text> id="path60509" />
<path d="M 204 104 L 204 156" fill="none" stroke="rgb(0,0,0)" /> <path
<path d="M 204 196 L 204 248" fill="none" stroke="rgb(0,0,0)" /> d="m 230.60152,433.66929 h 304 a 2,4 0 0 1 0,8 h -304 a 2,4 0 0 1 0,-8"
<path d="M 168 172 A16,8 0 0 1 184 164 A16,6 0 0 1 224 164 A16,8 0 0 1 240 172 A16,8 0 0 1 240 188 A16,20 0 0 1 216 188 A16,20 0 0 1 192 188 A16,20 0 0 1 168 188 A16,8 0 0 1 168 172" fill="rgb(255,255,255)" stroke="rgb(0,0,0)" /> fill="#b9cbe4"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="48" x="204.0" y="182">internet</text> stroke="#000000"
<path d="M 204 248 L 204 300" fill="none" stroke="rgb(0,0,0)" /> id="path60511" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="108" x="270.0" y="280">my.awesome.dns.com</text> <path
<path d="M 204 340 L 204 388" fill="none" stroke="rgb(0,0,0)" /> d="m 534.60152,441.66929 a 2,4 0 0 1 0,-8"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="48" x="240.0" y="368">10.1.1.1</text> fill="none"
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="104" x="152" y="300" /> stroke="#000000"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="36" x="204.0" y="326">Gibson</text> id="path60513" />
<path d="M 356 396 L 356 444" fill="none" stroke="rgb(0,0,0)" /> <path
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="48" x="392.0" y="424">10.1.1.2</text> d="m 230.60152,433.66929 h 304"
<path d="M 356 484 L 356 532" fill="none" stroke="rgb(0,0,0)" /> fill="none"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="66" x="401.0" y="512">10.2.2.0/24</text> stroke="none"
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="104" x="304" y="444" /> id="path60515" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="54" x="356.0" y="470">Hackbardt</text> <text
<path d="M 508 396 L 508 444" fill="none" stroke="rgb(0,0,0)" /> fill="#000000"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="48" x="544.0" y="424">10.1.1.3</text> font-family="sans-serif"
<path d="M 508 484 L 508 532" fill="none" stroke="rgb(0,0,0)" /> font-size="11px"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="66" x="553.0" y="512">10.2.3.0/24</text> font-style="normal"
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="104" x="456" y="444" /> font-weight="normal"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="18" x="508.0" y="470">HAL</text> text-anchor="middle"
textLength="42"
x="99"
y="391"
id="text60517"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">private</text>
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="66"
x="87"
y="404"
id="text60519"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">10.1.1.0/24</text>
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="108"
x="218"
y="542"
id="text60521"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">&quot;private (subnet)&quot;</text>
<path
d="M 154.60152,5.6692913 V 57.669291"
fill="none"
stroke="#000000"
id="path60523" />
<path
d="M 154.60152,97.669291 V 149.66929"
fill="none"
stroke="#000000"
id="path60525" />
<path
d="m 118.60152,73.669291 a 16,8 0 0 1 16,-8 20,7.5 0 0 1 40,0 16,8 0 0 1 16,8 16,8 0 0 1 0,16 16,20 0 0 1 -24,0 16,20 0 0 1 -24,0 16,20 0 0 1 -24,0 16,8 0 0 1 0,-16"
fill="#ffffff"
stroke="#000000"
id="path60527"
style="fill:none" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="48"
x="204"
y="182"
id="text60529"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">internet</text>
<path
d="m 154.60152,149.66929 v 52"
fill="none"
stroke="#000000"
id="path60531" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="108"
x="270"
y="280"
id="text60533"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">my.awesome.dns.com</text>
<path
d="m 154.60152,241.66929 v 48"
fill="none"
stroke="#000000"
id="path60535" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="48"
x="240"
y="368"
id="text60537"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">10.1.1.1</text>
<rect
fill="#ffffff"
height="40"
stroke="#000000"
width="104"
x="102.60152"
y="201.6693"
id="rect60539"
style="fill:none" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="36"
x="204"
y="326"
id="text60541"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">Gibson</text>
<path
d="m 306.60152,297.66929 v 48"
fill="none"
stroke="#000000"
id="path60543" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="48"
x="392"
y="424"
id="text60545"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">10.1.1.2</text>
<path
d="m 306.60152,385.66929 v 48"
fill="none"
stroke="#000000"
id="path60547" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="66"
x="401"
y="512"
id="text60549"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">10.2.2.0/24</text>
<rect
fill="#ffffff"
height="40"
stroke="#000000"
width="104"
x="254.60152"
y="345.66928"
id="rect60551"
style="fill:none" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="54"
x="356"
y="470"
id="text60553"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">Hackbardt</text>
<path
d="m 458.60152,297.66929 v 48"
fill="none"
stroke="#000000"
id="path60555" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="48"
x="544"
y="424"
id="text60557"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">10.1.1.3</text>
<path
d="m 458.60152,385.66929 v 48"
fill="none"
stroke="#000000"
id="path60559" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="66"
x="553"
y="512"
id="text60561"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">10.2.3.0/24</text>
<rect
fill="#ffffff"
height="40"
stroke="#000000"
width="104"
x="406.60153"
y="345.66928"
id="rect60563"
style="fill:none" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="18"
x="508"
y="470"
id="text60565"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">HAL</text>
<metadata
id="metadata60640">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>blockdiag</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

View File

@ -1,55 +1,281 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> <svg
<svg viewBox="0 0 608 588" xmlns="http://www.w3.org/2000/svg" xmlns:inkspace="http://www.inkscape.org/namespaces/inkscape" xmlns:xlink="http://www.w3.org/1999/xlink"> viewBox="0 0 592.06694 447.73858"
<defs id="defs_block"> version="1.1"
<filter height="1.504" id="filter_blur" inkspace:collect="always" width="1.1575" x="-0.07875" y="-0.252"> id="svg60634"
<feGaussianBlur id="feGaussianBlur3780" inkspace:collect="always" stdDeviation="4.2" /> sodipodi:docname="3computers.svg"
</filter> width="156.65105mm"
</defs> height="118.46416mm"
<title>blockdiag</title> inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
<desc> xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<sodipodi:namedview
id="namedview60636"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
lock-margins="true"
units="mm"
fit-margin-top="1.5"
fit-margin-left="1.5"
fit-margin-right="1.5"
fit-margin-bottom="1.5"
inkscape:zoom="1.9013605"
inkscape:cx="274.54025"
inkscape:cy="212.7424"
inkscape:window-width="2560"
inkscape:window-height="1440"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg60634"
inkscape:document-units="mm" />
<defs
id="defs_block" />
<title
id="title60574">blockdiag</title>
<desc
id="desc60576">
nwdiag { nwdiag {
internet [shape = cloud]; internet [shape = cloud];
internet -- Gibson [address = "my.awesome.dns.com"] internet -- Gibson [address = &quot;my.awesome.dns.com&quot;]
network private { network private {
address = "10.1.1.0/24"; address = &quot;10.1.1.0/24&quot;;
Gibson [address = "10.1.1.1"]; Gibson [address = &quot;10.1.1.1&quot;];
Hackbardt [address = "10.1.1.2"]; Hackbardt [address = &quot;10.1.1.2&quot;];
HAL [address = "10.1.1.3"]; HAL [address = &quot;10.1.1.3&quot;];
} }
} }
</desc> </desc>
<path d="M 171 178 A16,8 0 0 1 187 170 A16,6 0 0 1 227 170 A16,8 0 0 1 243 178 A16,8 0 0 1 243 194 A16,20 0 0 1 219 194 A16,20 0 0 1 195 194 A16,20 0 0 1 171 194 A16,8 0 0 1 171 178" fill="rgb(0,0,0)" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" /> <path
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="104" x="155" y="306" /> d="M 78.601518,289.66929 H 534.60152 a 2,4 0 0 1 0,8 H 78.601518 a 2,4 0 0 1 0,-8"
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="104" x="307" y="450" /> fill="#b9cbe4"
<rect fill="rgb(0,0,0)" height="40" stroke="rgb(0,0,0)" style="filter:url(#filter_blur);opacity:0.7;fill-opacity:1" width="104" x="459" y="450" /> stroke="#000000"
<path d="M 131 391 L 587 391 A2,4 0 0 1 587 399 L 131 399 A2,4 0 0 1 131 391" fill="rgb(0,0,0)" style="filter:url(#filter_blur)" /> id="path60588" />
<path d="M 128 388 L 584 388 A2,4 0 0 1 584 396 L 128 396 A2,4 0 0 1 128 388" fill="rgb(185,203,228)" stroke="rgb(0,0,0)" /> <path
<path d="M 584 396 A2,4 0 0 1 584 388" fill="none" stroke="rgb(0,0,0)" /> d="m 534.60152,297.66929 a 2,4 0 0 1 0,-8"
<path d="M 128 388 L 584 388" fill="none" stroke="none" /> fill="none"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="42" x="99.0" y="391">private</text> stroke="#000000"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="66" x="87.0" y="404">10.1.1.0/24</text> id="path60590" />
<path d="M 204 104 L 204 156" fill="none" stroke="rgb(0,0,0)" /> <path
<path d="M 204 196 L 204 248" fill="none" stroke="rgb(0,0,0)" /> d="M 78.601518,289.66929 H 534.60152"
<path d="M 168 172 A16,8 0 0 1 184 164 A16,6 0 0 1 224 164 A16,8 0 0 1 240 172 A16,8 0 0 1 240 188 A16,20 0 0 1 216 188 A16,20 0 0 1 192 188 A16,20 0 0 1 168 188 A16,8 0 0 1 168 172" fill="rgb(255,255,255)" stroke="rgb(0,0,0)" /> fill="none"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="48" x="204.0" y="182">internet</text> stroke="none"
<path d="M 204 248 L 204 300" fill="none" stroke="rgb(0,0,0)" /> id="path60592" />
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="108" x="270.0" y="280">my.awesome.dns.com</text> <text
<path d="M 204 340 L 204 388" fill="none" stroke="rgb(0,0,0)" /> fill="#000000"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="48" x="240.0" y="368">10.1.1.1</text> font-family="sans-serif"
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="104" x="152" y="300" /> font-size="11px"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="36" x="204.0" y="326">Gibson</text> font-style="normal"
<path d="M 356 396 L 356 444" fill="none" stroke="rgb(0,0,0)" /> font-weight="normal"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="48" x="392.0" y="424">10.1.1.2</text> text-anchor="middle"
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="104" x="304" y="444" /> textLength="42"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="54" x="356.0" y="470">Hackbardt</text> x="99"
<path d="M 508 396 L 508 444" fill="none" stroke="rgb(0,0,0)" /> y="391"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="48" x="544.0" y="424">10.1.1.3</text> id="text60594"
<rect fill="rgb(255,255,255)" height="40" stroke="rgb(0,0,0)" width="104" x="456" y="444" /> lengthAdjust="spacing"
<text fill="rgb(0,0,0)" font-family="sans-serif" font-size="11" font-style="normal" font-weight="normal" text-anchor="middle" textLength="18" x="508.0" y="470">HAL</text> transform="translate(-49.398482,-98.330709)">private</text>
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="66"
x="87"
y="404"
id="text60596"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">10.1.1.0/24</text>
<path
d="M 154.60152,5.6692913 V 57.669291"
fill="none"
stroke="#000000"
id="path60598" />
<path
d="M 154.60152,97.669291 V 149.66929"
fill="none"
stroke="#000000"
id="path60600" />
<path
d="m 118.60152,73.669291 a 16,8 0 0 1 16,-8 20,7.5 0 0 1 40,0 16,8 0 0 1 16,8 16,8 0 0 1 0,16 16,20 0 0 1 -24,0 16,20 0 0 1 -24,0 16,20 0 0 1 -24,0 16,8 0 0 1 0,-16"
fill="#ffffff"
stroke="#000000"
id="path60602"
style="fill:none" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="48"
x="204"
y="182"
id="text60604"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">internet</text>
<path
d="m 154.60152,149.66929 v 52"
fill="none"
stroke="#000000"
id="path60606" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="108"
x="270"
y="280"
id="text60608"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">my.awesome.dns.com</text>
<path
d="m 154.60152,241.66929 v 48"
fill="none"
stroke="#000000"
id="path60610" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="48"
x="240"
y="368"
id="text60612"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">10.1.1.1</text>
<rect
fill="#ffffff"
height="40"
stroke="#000000"
width="104"
x="102.60152"
y="201.6693"
id="rect60614"
style="fill:none" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="36"
x="204"
y="326"
id="text60616"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">Gibson</text>
<path
d="m 306.60152,297.66929 v 48"
fill="none"
stroke="#000000"
id="path60618" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="48"
x="392"
y="424"
id="text60620"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">10.1.1.2</text>
<rect
fill="#ffffff"
height="40"
stroke="#000000"
width="104"
x="254.60152"
y="345.66928"
id="rect60622"
style="fill:none" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="54"
x="356"
y="470"
id="text60624"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">Hackbardt</text>
<path
d="m 458.60152,297.66929 v 48"
fill="none"
stroke="#000000"
id="path60626" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="48"
x="544"
y="424"
id="text60628"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">10.1.1.3</text>
<rect
fill="#ffffff"
height="40"
stroke="#000000"
width="104"
x="406.60153"
y="345.66928"
id="rect60630"
style="fill:none" />
<text
fill="#000000"
font-family="sans-serif"
font-size="11px"
font-style="normal"
font-weight="normal"
text-anchor="middle"
textLength="18"
x="508"
y="470"
id="text60632"
lengthAdjust="spacing"
transform="translate(-49.398482,-98.330709)">HAL</text>
<metadata
id="metadata60638">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>blockdiag</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -0,0 +1,254 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="163.95656mm"
height="85.695374mm"
viewBox="0 0 163.95656 85.695374"
version="1.1"
id="svg26511"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
sodipodi:docname="qemu-kvm-setup.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview26513"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="2.8170388"
inkscape:cx="372.02185"
inkscape:cy="119.80666"
inkscape:window-width="2556"
inkscape:window-height="1436"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer3"
lock-margins="true"
fit-margin-top="1.5"
fit-margin-left="1.5"
fit-margin-right="1.5"
fit-margin-bottom="1.5" />
<defs
id="defs26508">
<marker
style="overflow:visible"
id="Arrow2Lend"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Lend"
inkscape:isstock="true">
<path
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
id="path26692" />
</marker>
<marker
style="overflow:visible"
id="marker26957"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend"
inkscape:isstock="true">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path26955" />
</marker>
<marker
style="overflow:visible"
id="Arrow1Lend"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Lend"
inkscape:isstock="true">
<path
transform="matrix(-0.8,0,0,-0.8,-10,0)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 0,0 5,-5 -12.5,0 5,5 Z"
id="path26674" />
</marker>
<marker
style="overflow:visible"
id="Arrow2Mstart"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Mstart"
inkscape:isstock="true">
<path
transform="scale(0.6)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
id="path26695" />
</marker>
<marker
style="overflow:visible"
id="Arrow2Sstart"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow2Sstart"
inkscape:isstock="true">
<path
transform="matrix(0.3,0,0,0.3,-0.69,0)"
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.625;stroke-linejoin:round"
id="path26701" />
</marker>
</defs>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="Layer 2"
transform="translate(-11.982074,-21.964117)">
<rect
style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
id="rect26550"
width="115.06891"
height="82.495377"
x="13.582074"
y="23.564117" />
<rect
style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
id="rect26552"
width="32.57613"
height="10.205474"
x="141.7625"
y="37.863419" />
<rect
style="fill:none;stroke:#000000;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none"
id="rect26554"
width="72.29763"
height="39.356071"
x="51.037868"
y="57.229633" />
<path
style="fill:none;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 13.555926,33.277492 H 27.272789 V 23.517457"
id="path26608" />
<path
style="fill:none;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 50.930566,67.346684 H 99.245794 V 57.511473"
id="path26610" />
<path
style="fill:none;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
d="M 141.69494,41.488036 H 76.658099"
id="path26612" />
<path
style="fill:none;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
d="M 27.030677,46.518414 V 77.140349 H 59.501682"
id="path26973"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
d="m 71.579758,77.10685 h 19.631681 v 6.6211"
id="path26975" />
<path
style="fill:none;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
d="M 89.441093,57.178433 V 44.583544 h 51.202597"
id="path26977"
sodipodi:nodetypes="ccc" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
x="61.244846"
y="78.313263"
id="text32222"><tspan
sodipodi:role="line"
id="tspan32220"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
x="61.244846"
y="78.313263">sshd</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
x="66.268555"
y="88.277306"
id="text36868"><tspan
sodipodi:role="line"
id="tspan36866"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
x="66.268555"
y="88.277306">nixos-rebuild switch</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52777px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
x="54.093658"
y="62.60902"
id="text39732"><tspan
sodipodi:role="line"
id="tspan39730"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
x="54.093658"
y="62.60902" /></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
x="55.435448"
y="63.666706"
id="text42728"><tspan
sodipodi:role="line"
id="tspan42726"
style="stroke-width:0.264583"
x="55.435448"
y="63.666706">qemu-kvm /dev/sdb</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
x="15.95615"
y="29.764059"
id="text48250"><tspan
sodipodi:role="line"
id="tspan48248"
style="stroke-width:0.264583"
x="15.95615"
y="29.764059">host</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
x="20.977367"
y="44.197021"
id="text49574"><tspan
sodipodi:role="line"
id="tspan49572"
style="stroke-width:0.264583"
x="20.977367"
y="44.197021">colmena</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
x="57.19186"
y="42.669193"
id="text51536"><tspan
sodipodi:role="line"
id="tspan51534"
style="stroke-width:0.264583"
x="57.19186"
y="42.669193">/dev/sdb</tspan></text>
<text
xml:space="preserve"
style="font-size:3.52777px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
x="148.55846"
y="43.976742"
id="text55214"><tspan
sodipodi:role="line"
id="tspan55212"
style="stroke-width:0.264583"
x="148.55846"
y="43.976742">usb-stick</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="110.46066mm"
height="41.361336mm"
viewBox="0 0 110.46062 41.361336"
version="1.1"
id="svg5"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
sodipodi:docname="usb-stick-partitions.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="2.8284271"
inkscape:cx="196.92924"
inkscape:cy="60.634407"
inkscape:window-width="2556"
inkscape:window-height="1436"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer2"
fit-margin-top="1.5"
fit-margin-left="1.5"
fit-margin-right="1.5"
fit-margin-bottom="1.5"
lock-margins="true" />
<defs
id="defs2" />
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer 2"
transform="translate(-22.29669,-14.720924)">
<rect
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect44"
width="88.651665"
height="37.361336"
x="42.105679"
y="16.720924" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 50.993066,53.783195 V 25.111681 h 79.767774"
id="path1114"
sodipodi:nodetypes="ccc" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:3.52777778px;line-height:1.25;font-family:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.151373;-inkscape-font-specification:monospace;font-stretch:normal;font-variant:normal"
x="44.726772"
y="22.669426"
id="text4176"><tspan
sodipodi:role="line"
id="tspan4174"
style="fill:#000000;fill-opacity:1;stroke-width:0.151373;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:3.52777778px"
x="44.726772"
y="22.669426">USB stick</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:3.52777778px;line-height:1.25;font-family:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.124082;-inkscape-font-specification:monospace;font-stretch:normal;font-variant:normal"
x="54.430748"
y="30.861319"
id="text5038"><tspan
sodipodi:role="line"
id="tspan5036"
style="fill:#000000;fill-opacity:1;stroke-width:0.124082;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:3.52777778px"
x="54.430748"
y="30.861319">/dev/sda1 boot1 (MBR 1MB)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:3.52777778px;line-height:1.25;font-family:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.124082;-inkscape-font-specification:monospace;font-stretch:normal;font-variant:normal"
x="54.430748"
y="39.026749"
id="text5936"><tspan
sodipodi:role="line"
id="tspan5934"
style="fill:#000000;fill-opacity:1;stroke-width:0.124082;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:3.52777778px"
x="54.430748"
y="39.026749">/dev/sda2 boot2 (EFI 511MB)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:3.52777778px;line-height:1.25;font-family:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.124082;-inkscape-font-specification:monospace;font-stretch:normal;font-variant:normal"
x="54.430748"
y="47.192181"
id="text8700"><tspan
sodipodi:role="line"
id="tspan8698"
style="fill:#000000;fill-opacity:1;stroke-width:0.124082;-inkscape-font-specification:monospace;font-family:monospace;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:3.52777778px"
x="54.430748"
y="47.192181">/dev/sda3 root (ext4 &gt; 64GB)</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52778px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none"
x="86.616371"
y="52.156216"
id="text9430"><tspan
sodipodi:role="line"
id="tspan9428"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.52778px;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;fill-opacity:1;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none"
x="86.616371"
y="52.156216">(encrypted)</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 51.01631,33.86599 h 79.85925"
id="path11809"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 50.95848,41.642773 h 80.06198"
id="path11811"
sodipodi:nodetypes="cc" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect12235"
width="17.683184"
height="17.683184"
x="24.29669"
y="26.111729" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect12361"
width="8.4353819"
height="2.0950499"
x="29.423376"
y="31.978249" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect12361-7"
width="11.610385"
height="2.0950508"
x="26.248373"
y="27.894917" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect12361-3"
width="8.4353819"
height="2.0950499"
x="29.423376"
y="36.061569" />
<rect
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect12361-7-5"
width="11.610385"
height="2.0950508"
x="26.248373"
y="40.144897" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@ -11,52 +11,39 @@ summary: >
running NixOS. running NixOS.
--- ---
How to Create and update an bootable Linux USB stick, which is encrypted How to Create and update a bootable Linux USB stick, which is encrypted
is quite easy and has some use cases. is quite easy and has some use cases.
* As ultimate backup * As ultimate backup
* As a holiday tool * As a holiday tool
* For schools * For schools
# Requirements
# Requirments You need a USB stick with at least 64GB otherwise major updates might get problematic.
## USB Stick
You need an USB stick with at least 64GB otherwise major updates might get problematic.
The USB stick, which should hold the system, will be `/dev/sdb`. The USB stick, which should hold the system, will be `/dev/sdb`.
You can plugin the usb stick and run `dmesg` to find out which device we are using You can plug in the usb stick and run `dmesg` to find out which device we are using
# Step by Step Guide # Step-by-Step Guide
Here are the steps I use to create my encrypted USB sticks running NixOS. Here are the steps I use to create my encrypted USB sticks running NixOS.
## format and create gpt partition table ## Create partitions
``` {{< card footer="usb stick partitions" >}}
┌────────────────────────────────┐ {{<figure src="../images/usb-stick-partitions.svg" align=center >}}
│USB-stick │ {{< /card >}}
│ ┌──────────────────────────────┤
│ │ /dev/sda1 boot1 (MBR 1MB) │
│ ├──────────────────────────────┤
│ │ /dev/sda2 boot2 (EFI 511MB) │
│ ├──────────────────────────────┤
│ │ │
│ │ /dev/sda3 root (ext4 > 64GB) │
│ │ (encrypted) │
└─┴──────────────────────────────┘
```
> We use 511 MB for the boot partition, but you might want to increas this partition, > We use 511 MB for the boot partition, but you might want to increase this partition,
> if you want to place bootable ISOs on that partiton you want to boot instead of your NixOS system. > if you want to place bootable ISOs on that partition you want to boot instead of your NixOS system.
> We create an EFI partition as well a 1MB MBR partiton to make the stick boot > We create an EFI partition as well a 1MB MBR partition to make the stick boot
> on all kinds of computers. > on all kinds of computers.
I always delete all partitions using `fdisk` before starting repartitioning. First I delete all partitions using `fdisk` before starting repartitioning,
Than I start with the partitioning. then I start with the partitioning.
```shell ```shell
parted /dev/sdb -- mklabel gpt parted /dev/sdb -- mklabel gpt
@ -67,69 +54,64 @@ parted /dev/sdb -- set 2 boot on
parted /dev/sdb -- mkpart primary 512MiB 100% parted /dev/sdb -- mkpart primary 512MiB 100%
``` ```
It most likely is not necesary but to be sure, I unplug and plug the USB device again It most likely is not necessary but to be sure, I unplug and plug the USB device again
to be sure the new partiton table will be used. to be sure the new partition table will be used.
## create and encrypt partition ## Encrypt and format root partition
```shell ```shell
cryptsetup luksFormat /dev/sdb3 cryptsetup luksFormat /dev/sdb3
cryptsetup luksOpen /dev/sdb3 root-enc cryptsetup luksOpen /dev/sdb3 root-enc
mkfs.ext4 -L root /dev/mapper/root-enc
``` ```
This will be the password you have to type in every time you boot the USB Stick. This will be the password you have to type in every time you boot the USB Stick.
## create boot partitions ## Format boot partition
```shell ```shell
mkfs.fat -F 32 -n boot /dev/sdb2 mkfs.fat -F 32 -n boot /dev/sdb2
mkfs.ext4 -L root /dev/mapper/root-enc
``` ```
## prepare installation ## Prepare installation
We have to mount the created partitons. We have to mount the created partitions
to generate initial configuration files.
```shell ```shell
mount /dev/mapper/root-enc /mnt mount /dev/mapper/root-enc /mnt
mkdir /mnt/boot && mount /dev/sdb2 /mnt/boot mkdir /mnt/boot && mount /dev/sdb2 /mnt/boot
``` ```
And generate inital configuration files.
```shell ```shell
nixos-generate-config --root /mnt nixos-generate-config --root /mnt
``` ```
Now you can update `configuration.nix` Now you can update `configuration.nix` before installation.
before installation.
You can `hardware-configuration.nix` edit as too, You can `hardware-configuration.nix` edit as too,
but usally that is not necessary. but usually that is not necessary.
> don't forget to set your ssh key in `users.users.<name>.openssh.authorizedKeys.keys` > don't forget to set your ssh key in `users.users.<name>.openssh.authorizedKeys.keys`
> und `users.users.<name>.openssh.authorizedKeys.keyFiles` > und `users.users.<name>.openssh.authorizedKeys.keyFiles`
I usually have also these configurations set I usually have also these configurations set
```
```nix
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
vim vim wget htop silver-searcher iotop
wget
htop
silver-searcher
iotop
]; ];
# use vi shortcuts
environment.extraInit = '' environment.extraInit = ''
# use vi shortcuts
# ----------------
set -o vi set -o vi
EDITOR=vim EDITOR=vim
''; '';
``` ```
These options have to be added to make it bootable and to start it with qemu-kvm (See [Update stick using qemu-kvm](#update-stick-using-qemu-kvm)) These options have to be added to make it bootable and to start it with qemu-kvm
(See [Update stick using qemu-kvm](#update-stick-using-qemu-kvm))
``` ```nix
boot.loader.grub.enable = true; boot.loader.grub.enable = true;
boot.loader.grub.efiSupport = true; boot.loader.grub.efiSupport = true;
boot.loader.grub.device = "/dev/sdb"; # todo : change me once the system booted boot.loader.grub.device = "/dev/sdb"; # todo : change me once the system booted
@ -139,7 +121,7 @@ boot.tmpOnTmpfs = true;
You most likely have to disable these parameters You most likely have to disable these parameters
``` ```nix
boot.loader.systemd-boot.enable = false; boot.loader.systemd-boot.enable = false;
boot.loader.efi.canTouchEfiVariables = false; boot.loader.efi.canTouchEfiVariables = false;
``` ```
@ -168,32 +150,15 @@ root partition is encrypted.
To run frequent updates, it might be a hassle to boot a dedicated machine to access these updates. To run frequent updates, it might be a hassle to boot a dedicated machine to access these updates.
This is why I use `qemu` to start the machine and update the machine via [colmena](https://colmena.cli.rs/unstable/reference/) This is why I use `qemu` to start the machine and update the machine via [colmena](https://colmena.cli.rs/unstable/reference/)
which my prefered NixOS provisioning system. Of course your favorit provisioning tool will work as well. which my preferred NixOS provisioning system. Of course your favorite provisioning tool will work as well.
``` {{< card footer="partitions on the usb-stick">}}
┌────┬─────────────────────────────────────┐ {{<figure src="../images/qemu-kvm-setup.svg" align=center >}}
│host│ │ {{< /card >}}
├────┘ │
│ │ ┌───────────┐
│ colmena /dev/sdb ◄─────┬────────────┼────┤ usb-stick │
│ │ │ │ └───────────┘
│ │ │ │
│ │ ┌───────────────┴─┬────────┐ │
│ │ │qemu-kvm /dev/sdb│ │ │
│ │ ├─────────────────┘ │ │
│ │ │ │ │
│ └────────┤► sshd ───────┐ │ │
│ │ ▼ │ │
│ │ nixos-rebuild switch │ │
│ │ │ │
│ └──────────────────────────┘ │
│ │
└──────────────────────────────────────────┘
```
To run `qemu-kvm` on you machine, you need these options in your host `configuration.nix`. To run `qemu-kvm` on you machine, you need these options in your host `configuration.nix`.
``` ```nix
virtualisation.libvirtd.enable = true; virtualisation.libvirtd.enable = true;
users.users.mainUser.extraGroups = [ "libvirtd" ]; users.users.mainUser.extraGroups = [ "libvirtd" ];
environment.systemPackages = [ environment.systemPackages = [
@ -202,8 +167,9 @@ environment.systemPackages = [
]; ];
``` ```
To start the machine you simple have to run this command: To start the machine you simply have to run this command:
{{% code footer="start vm from /dev/sdb with port forwarding 2222 -> 22" %}}
```shell ```shell
sudo qemu-kvm \ sudo qemu-kvm \
-m 4G \ -m 4G \
@ -211,6 +177,7 @@ sudo qemu-kvm \
-net user,hostfwd=tcp:127.0.0.1:2222-:22 \ -net user,hostfwd=tcp:127.0.0.1:2222-:22 \
-net nic -net nic
``` ```
{{% /code %}}
![screenshot1.png](../images/screenshot1.png) ![screenshot1.png](../images/screenshot1.png)
@ -226,7 +193,6 @@ ssh root@localhost -p2222
So you should be able to update you usb stick with the comfort of you normal desktop setup. So you should be able to update you usb stick with the comfort of you normal desktop setup.
# further inspirations # further inspirations
* [Yubikey based Full Disk Encryption (NixOS Wiki)](https://nixos.wiki/wiki/Yubikey_based_Full_Disk_Encryption_(FDE)_on_NixOS) * [Yubikey based Full Disk Encryption (NixOS Wiki)](https://nixos.wiki/wiki/Yubikey_based_Full_Disk_Encryption_(FDE)_on_NixOS)

View File

@ -4,4 +4,5 @@
{{ with .Get "text" }}<p>{{ . }}<p>{{ end }} {{ with .Get "text" }}<p>{{ . }}<p>{{ end }}
{{ .Inner }} {{ .Inner }}
</div> </div>
{{ with .Get "footer" }}<div class="card-footer">{{ . }}</div>{{ end }}
</div> </div>

View File

@ -0,0 +1,5 @@
<div class="code-block">
{{ with .Get "header" }}<div class="code-header">{{ . }}</div>{{ end }}
{{.Inner}}
{{ with .Get "footer" }}<div class="code-footer">{{ . }}</div>{{ end }}
</div>

View File

@ -4,9 +4,12 @@
@color-body-background: @gb-lm-bg0-hard; @color-body-background: @gb-lm-bg0-hard;
@color-body-background-highlight: @gb-lm-bg0-soft; @color-body-background-highlight: @gb-lm-bg0-soft;
@color-body-font: @gb-lm-fg0; @color-body-font: @gb-lm-fg0;
@color-header-font-symbol: @gb-lm-light-gray;
@color-code-border: @gb-lm-light-yellow; @color-code-border: @gb-lm-light-yellow;
@color-code-inline: @gb-lm-light-gray; @color-code-inline: @gb-lm-light-gray;
@color-code-footer: @gb-lm-fg4;
@color-code-header: @gb-lm-fg4;
@color-note-background: @color-body-background; @color-note-background: @color-body-background;
@color-note-border: @gb-lm-light-green; @color-note-border: @gb-lm-light-green;

View File

@ -1,7 +1,7 @@
@font-normal: ~"'Roboto', sans-serif"; @font-normal: ~"'Roboto', sans-serif";
//@font-code: ~"'Inconsolata', monospace"; @font-code: ~"'Inconsolata', monospace";
@font-code: ~"monospace"; // because diagrams look strange //@font-code: ~"monospace"; // because diagrams look strange
@font-header: ~"'Roboto', sans-serif"; @font-header: ~"'Roboto', sans-serif";
//@font-header: ~"'Zilla Slab', serif"; //@font-header: ~"'Zilla Slab', serif";

View File

@ -57,6 +57,21 @@ blockquote{
border-top: 2px solid @color-card-border; border-top: 2px solid @color-card-border;
border-left: 2px solid @color-card-border; border-left: 2px solid @color-card-border;
border-right: 2px solid @color-card-border; border-right: 2px solid @color-card-border;
}
.card-footer{
text-align: right;
color: @color-code-footer;
padding-top: .3em ;
padding-bottom: .3em;
padding-left: .5em;
padding-right: .5em;
border-bottom: 2px solid @color-card-border;
border-left: 2px solid @color-card-border;
border-right: 2px solid @color-card-border;
} }
.card-body{ .card-body{

View File

@ -40,3 +40,34 @@
li > code { li > code {
.inline-code(); .inline-code();
} }
.code-block {
margin-bottom: @standard-margin;
margin-top: @standard-margin;
.code-header{
text-align: left;
color: @color-code-header;
border-top: 1px solid @color-code-border;
border-left: 1px solid @color-code-border;
border-right: 1px solid @color-code-border;
padding-left: .5em;
padding-top: .3em ;
padding-right: .5em;
padding-bottom: 0.3em;
}
pre {
margin-bottom: 0;
margin-top: 0;
}
.code-footer {
text-align: right;
color: @color-code-footer;
border-bottom: 1px solid @color-code-border;
border-left: 1px solid @color-code-border;
border-right: 1px solid @color-code-border;
padding-left: .5em;
padding-top: .3em ;
padding-right: .5em;
padding-bottom: 0.3em;
}
}

View File

@ -30,7 +30,7 @@ h1, h2, h3, h4, h5, h6 {
h1:before, h2:before, h3:before, h4:before, h5:before, h6:before { h1:before, h2:before, h3:before, h4:before, h5:before, h6:before {
display: inline; display: inline;
color: @gb-lm-fg4; color: @color-header-font-symbol;
} }
h1:before { h1:before {