<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Knowledge Base (Posts about storage)</title><link>https://bgstack15.ddns.net/blog/</link><description></description><atom:link href="https://bgstack15.ddns.net/blog/categories/storage.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2023 &lt;a href="mailto:bgstack15@gmail.com"&gt;bgstack15&lt;/a&gt; 
&lt;a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"&gt;
&lt;img alt="Creative Commons License BY-SA"
style="border-width:0; margin-bottom:12px;"
src="https://bgstack15.ddns.net/.images/l_by-sa_4.0_88x31.png"&gt;&lt;/a&gt;</copyright><lastBuildDate>Thu, 28 Sep 2023 13:15:36 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Save whole hard drive image</title><link>https://bgstack15.ddns.net/blog/posts/2023/09/28/save-whole-hard-drive-image/</link><dc:creator>bgstack15</dc:creator><description>&lt;p&gt;I have some old hard drives (IDE connectors) I wish to backup. In my current solution, these old Windows XP-era-sized hard drives are a piece of cake to store. But how should I store them? They aren't compact discs, so genisoimage wouldn't cut it.&lt;/p&gt;
&lt;p&gt;Here's how I chose to preserve them.&lt;/p&gt;
&lt;h2&gt;make disk image&lt;/h2&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;time sudo qemu-img convert -c -O qcow2 /dev/sdd1 DOWNSTAIRS_PC.qcow2
&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;mount image&lt;/h2&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="nv"&gt;sudo&lt;/span&gt; &lt;span class="nv"&gt;modprobe&lt;/span&gt; &lt;span class="nv"&gt;nbd&lt;/span&gt; &lt;span class="nv"&gt;max_part&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;
&lt;span class="nv"&gt;sudo&lt;/span&gt; &lt;span class="nv"&gt;qemu&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;nbd&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="k"&gt;connect&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="nv"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;nbd0&lt;/span&gt; &lt;span class="o"&gt;~/&lt;/span&gt;&lt;span class="nv"&gt;DOWNSTAIRS_PC&lt;/span&gt;.&lt;span class="nv"&gt;qcow2&lt;/span&gt;
&lt;span class="nv"&gt;sudo&lt;/span&gt; &lt;span class="nv"&gt;fdisk&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;nbd0&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;l&lt;/span&gt;
&lt;span class="nv"&gt;sudo&lt;/span&gt; &lt;span class="nv"&gt;mount&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;nbd0&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;mnt&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;foo&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;when done&lt;/h2&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;&lt;span class="nv"&gt;sudo&lt;/span&gt; &lt;span class="nv"&gt;umount&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;mnt&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;foo&lt;/span&gt;
&lt;span class="nv"&gt;sudo&lt;/span&gt; &lt;span class="nv"&gt;qemu&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;nbd&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="k"&gt;disconnect&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;nbd0&lt;/span&gt;
&lt;span class="nv"&gt;sudo&lt;/span&gt; &lt;span class="nv"&gt;modprobe&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;r&lt;/span&gt; &lt;span class="nv"&gt;nbd&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;References&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://unix.stackexchange.com/questions/522839/how-to-clone-a-single-partition-from-a-hd-to-a-qcow2-disk-image-for-use-in-qemu"&gt;https://unix.stackexchange.com/questions/522839/how-to-clone-a-single-partition-from-a-hd-to-a-qcow2-disk-image-for-use-in-qemu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://unix.stackexchange.com/questions/268460/how-to-mount-qcow2-image"&gt;https://unix.stackexchange.com/questions/268460/how-to-mount-qcow2-image&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description><category>backup</category><category>drive</category><category>storage</category><guid>https://bgstack15.ddns.net/blog/posts/2023/09/28/save-whole-hard-drive-image/</guid><pubDate>Thu, 28 Sep 2023 13:13:41 GMT</pubDate></item><item><title>Make driver disk for CentOS</title><link>https://bgstack15.ddns.net/blog/posts/2019/11/28/make-driver-disk-for-centos/</link><dc:creator>bgstack15</dc:creator><description>&lt;h2&gt;Goals&lt;/h2&gt;
&lt;p&gt;If you want to make a generic USB driver disk for RHEL/CentOS, you can follow
these instructions. The drivers are in rpm format, and you need those drivers
during installation of a new system, primarily storage drivers.&lt;/p&gt;
&lt;h2&gt;Instructions&lt;/h2&gt;
&lt;p&gt;On an existing CentOS system, install the dependencies.&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;yum&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="n"&gt;install&lt;/span&gt; &lt;span class="n"&gt;createrepo&lt;/span&gt; &lt;span class="n"&gt;squashfs&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Change directory to where your rpms and make a new directory tree.&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;to&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;rpms&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="n"&gt;SQUASH_ROOT&lt;/span&gt;&lt;span class="o"&gt;=./&lt;/span&gt;&lt;span class="n"&gt;squashfs&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;
&lt;span class="n"&gt;mkdir&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="s2"&gt;"${SQUASH_ROOT}/rpms/x86_64"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Make a specific file with any contents you wish.&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;echo "My custom driver disk" &amp;gt; "&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;SQUASH_ROOT&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;/rhdd3"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Make a yum repository&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;cp -p *rpm "&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;SQUASH_ROOT&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;/rpms/x86_64/"
createrepo --basedir "&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;SQUASH_ROOT&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;/rpms/x86_64/" .
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Make the driver disk-only components.&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;touch "&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;SQUASH_ROOT&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;/.rundepmod"
( cd "&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;SQUASH_ROOT&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;" ;
   for thisrpm in "&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;SQUASH_ROOT&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;/rpms/x86_64"/*rpm ;
   do
      rpm2cpio "&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;thisrpm&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;" | cpio -imVd ./lib/*
   done
)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And make the image file from the custom directory.&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;mksquashfs "&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;SQUASH_ROOT&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;" ./my-driver-disk.img
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Clean up the custom directory if you're done with it! The image is now
complete and we will use it for the last step.&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;rm -rf "&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;SQUASH_ROOT&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Deploy the image onto your preferred disk drive. Be sure you know which drive
is the flash drive you want!&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;sudo&lt;/span&gt; &lt;span class="nv"&gt;dd&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="nv"&gt;path&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;to&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;my&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;driver&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nv"&gt;disk&lt;/span&gt;.&lt;span class="nv"&gt;img&lt;/span&gt; &lt;span class="nv"&gt;of&lt;/span&gt;&lt;span class="o"&gt;=/&lt;/span&gt;&lt;span class="nv"&gt;dev&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;sdz&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The image file should be really small, so there is no need to control block
size (bs=2048). Also, this disk will not be directly readable to a regular
system, so do not let that alarm you.&lt;/p&gt;
&lt;h2&gt;References&lt;/h2&gt;
&lt;h3&gt;Weblinks&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.marcanoonline.com/post/2016/07/red-hat-enterprise-linux-and-centos-7-driver-disk/"&gt;Red Hat Enterprise Linux and CentOS 7 Driver Disk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bgstack15.ddns.net/blog/posts/2019/11/20/install-centos-7-on-hp-proliant-dl360-g5-with-p400i-sas-controller/"&gt;Install CentOS 7 on HP ProLiant DL360 G5 with P400i SAS Controller | Knowledge Base&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</description><category>centos</category><category>driver</category><category>storage</category><guid>https://bgstack15.ddns.net/blog/posts/2019/11/28/make-driver-disk-for-centos/</guid><pubDate>Thu, 28 Nov 2019 14:17:38 GMT</pubDate></item><item><title>Find wwns for LUNs</title><link>https://bgstack15.ddns.net/blog/posts/2018/12/23/find-wwns-for-luns/</link><dc:creator>bgstack15</dc:creator><description>&lt;p&gt;If you need to discover the wwns of your storage:&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;for word in $( find /dev/sd* -printf '%f\n' ) ; do printf "%s %s\n" "$( udevadm info -q all -p /block/&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;word&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt; 2&amp;gt;/dev/null | awk -F'=' '/WWN_WITH_EXT/{print $2}' )" "/dev/&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;word&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;" ; done
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Or&lt;/p&gt;
&lt;pre class="code literal-block"&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;ls -l /dev/disk/by-id/wwn*
&lt;/code&gt;&lt;/pre&gt;</description><category>linux</category><category>oneliner</category><category>storage</category><category>wwn</category><guid>https://bgstack15.ddns.net/blog/posts/2018/12/23/find-wwns-for-luns/</guid><pubDate>Sun, 23 Dec 2018 14:05:40 GMT</pubDate></item></channel></rss>