MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
設定 - ストレージのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
設定 - ストレージ
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == ここでは、ストレージのマウント方法および再マウント方法を記載する。<br> <br><br> == ストレージのマウント == アタッチした追加ストレージの情報を確認する。<br> sudo parted -l <br> マウント先のディレクトリを作成する。<br> sudo mkdir -p /run/media/Storage1 <br> マウントを実行する。<br> sudo mount /dev/sdx /run/media/Storage1 <br> マウントしたストレージが認識されているか確認する。<br> df -h <br><br> == ストレージの再マウント == 以下のコマンドを実行して、ストレージを再マウントする。<br> sudo mount -o remount -rw /run/media/Storage1 <br><br> == ストレージの自動マウント == ===== .profileファイルに記述する方法 ===== ホームディレクトリにある.profileファイルに、以下の設定を記述する。<br> RUNLEVEL=`echo <パスワード名> | LANG=C sudo -S mount -o /dev/sdx /run/media/<ストレージ名>` <br> また、NASを自動マウントする場合は、以下のように記述する。<br> RUNLEVEL=`echo <パスワード名> | LANG=C sudo -S mount -o username=<ユーザ名>,password=<パスワード> //<IPアドレスまたはホスト名>/<ディレクトリ名> /run/media/<ストレージ名>` <br> <u>'''※注意'''</u><br> '''NASを使用する場合は、ミドルウェアとしてcifsが必要となるので、以下のコマンドを実行してインストールしておくこと。'''<br> sudo zypper install cifs <br> ===== /etc/fstabファイルに記述する方法 ===== /etc/fstabファイルに以下の行を追記する。<br> # ローカルストレージ /dev/sdX <マウントディレクトリ> <ファイルシステム名:xfs、ext4、btrfs等> file_mode=0755,dir_mode=0755 0 0 # NAS //<IPアドレスまたはホスト名>/<ディレクトリ名> /run/media/NAS cifs username=<ユーザ名,password=<パスワード>,uid=<マウントするユーザのユーザID>,gid=<マウントするユーザのグループID>,file_mode=0755,dir_mode=0755 0 0 <br> <u>※注意</u><br> <u>マウントを実行するユーザのUIDとGIDを調べるには、マウントするユーザで以下のコマンドを実行する。</u><br> id <br> また、下表にfstabのフォーマットを示す。<br> # fstabのフォーマット例 # <span style="color:#C00000">X</span> : ストレージ番号, <span style="color:#C00000">Y</span> : パーティション番号 /dev/sd<span style="color:#C00000">X</span><span style="color:#C00000">Y</span> /mnt ext4 defaults 1 2 <br> <center> {| class="wikitable" | style="background-color:#fefefe;" |- ! style="background-color:#66CCFF;" | オプション ! style="background-color:#66CCFF;" | 説明 |- | デバイスファイル名 || デバイスファイル名、LABEL、UUIDを指定する。 |- | マウントポイント || ファイルシステムのマウント先のディレクトリ |- | ファイルシステムの種類 || ファイルシステムの種類を指定する。 |- | マウントオプション || マウントする時のオプションを指定する。 |- | dumpフラグ || 1 : <code>dump</code>コマンドによるバックアップの対象になる。<br>1 : ファイルシステムがetx2 / ext3の場合は<code>1</code>を指定する。<br>0 : その他の場合は<code>0</code>を指定する。 |- | fsckのチェック || Linuxの起動時にfsckが確認する順序を指定する。<br>0、1、2を設定できる。<br><br>0 : ファイルシステムを確認しない。<br>1 : 確認する優先度が最も高い。ルートファイルシステム(/)は<code>1</code>である必要がある。<br>2 : その他のの場合 |} </center> <br><br> == ストレージのラベル == ストレージのラベルの確認および変更方法を記載する。<br> <br> ==== デバイスの確認 ==== <code>lsblk</code>で対象デバイスを確認する。<br> # 入力 lsblk # 出力 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 596.2G 0 disk ├─sda1 8:1 0 25G 0 part ├─sda2 8:2 0 250.1G 0 part /mnt/sda2 ├─sda3 8:3 0 317G 0 part / └─sda4 8:4 0 4.1G 0 part [SWAP] sdb 8:16 1 59.8G 0 disk └─sdb1 8:17 1 59.8G 0 part /run/media/user-name/Plamo5.1x64 sdc 8:32 0 1.8T 0 disk └─sdc1 8:33 0 1.8T 0 part /run/media/user-nanme/My Passport sr0 11:0 1 1024M 0 rom <br> ==== ファイルシステムの種類を確認する ==== <code>df</code>コマンドを<code>-T</code>オプション付きで実行すると、ファイルシステムの種類を確認できる。<br> # 入力 df -T # 出力 ファイルシス タイプ 1K-blocks 使用 使用可 使用% マウント位置 /dev/sda3 ext4 327052076 62782264 247633500 21% / tmpfs tmpfs 4038320 0 4038320 0% /dev/shm /dev/sda2 fuseblk 262199292 255269036 6930256 98% /mnt/sda2 /dev/sdb1 fuseblk 62643196 3296388 59346808 6% /run/media/hoge/external1 /dev/sdc1 fuseblk 1953480700 818545888 1134934812 42% /run/media/hoge/external2 <br> ==== FAT32のラベル ==== FAT32のラベルを変更するには、次の書式で<code>mlabel</code>コマンドを実行する。<br> <code>::</code>を付ける必要があることに注意する。<br> mlabel -i デバイス名 ::ラベル名 <br> <code>mlabel</code>コマンドを使用するために、mtoolsをインストールする必要がある。<br> sudo zypper install mtools <br> 例えば、/dev/sdc2のラベルをSAKURAにするには、以下のコマンドを実行する。<br> sudo mlabel -i /dev/sdc2 ::SAKURA <br> デバイスをアンマウントし、再びマウントすればラベルが変更されているのが確認できる。<br> または、例えば、/dev/sdc1をDドライブに割り当てる設定をして、以下のコマンドを実行する。<br> sudo vim /etc/mtools.conf <br> drive d: file="/dev/sdc1" <br> そのラベルを確認するには、<code>-s</code>オプションを付ける。<br> sudo mlabel -s d: <br> ==== ext2 / ext3 / ext4のラベル ==== * 現在のラベルを確認 *: <code>e2label <デバイス名></code> * ラベルを変更: *: <code>e2label <デバイス名> <ラベル名></code> <br> ==== NTFSのラベル ==== * 現在のラベルを確認 *: <code>sudo /usr/sbin/ntfslabel <デバイス名></code> * ラベルを変更: *: <code>sudo /usr/sbin/ntfslabel <デバイス名> <ラベル名></code> <br> ==== exFATのラベル ==== exfat-utilsをインストールする。<br> <br> * 現在のラベルを確認 *: <code>exfatlabel <デバイス名></code> <br> * ラベルを変更 *: <code>exfatlabel <デバイス名> <ラベル名></code> <br> ==== Btrfs ==== * 現在のラベルを確認 *: <code>lsblk</code> *: <br> * ラベル名を変更 *: <code>sudo btrfs filesystem label <旧ラベル名のフルパス> <新ラベル名></code> <br><br> == クローン == ==== ddrescueコマンド ==== ddrescueコマンドは、データの複製と復元のために設計されたツールである。<br> <br> ファイルやブロックデバイス(HDD、SSD、光学式ドライブ等)から別のストレージにデータをコピーする。<br> もし、読み取りエラーが発生した場合は、最初に無事な箇所をコピーする。<br> <br> まず、ddrescureをインストールする。<br> * パッケージ管理システムからインストール *: <code>sudo zypper install dd_rescue</code> *: <br> * ソースコードからインストール *# [https://www.gnu.org/software/ddrescue/ GNUの公式Webサイトにあるddrescureページ]にアクセスして、ソースコードをダウンロードする。 *# ダウンロードしたファイルを解凍する。 *#: <code>tar xf ddrescue-<バージョン>.tar.lz</code> *#: <code>cd ddrescue-<バージョン></code> *# ビルドディレクトリを作成する。 *#: <code>mkdir build && cd build</code> *# ddrescueをビルドおよびインストールする。 *#: <code>../configure --prefix=<ddrescueのインストールディレクトリ></code> *#: <code>make -j $(nproc)</code> *#: <code>make install</code> <br> 故障および故障寸前のストレージをクローンする場合は、<code>ddrescue</code>コマンドを2回実行する。<br> # まず、読み取りエラーが存在しないブロックを全てコピーして、エラーをファイルにマッピングする。 #: <code>sudo ddrescue -n <クローン元のストレージ> <クローン先のストレージ> <エラーをマッピングするファイル></code> #: 例 : <code>sudo ddrescue -n /dev/sd<span style="color:#C00000">X</span> /dev/sd<span style="color:#C00000">Y</span> ~/rescue1.map</code> #: <br> # 次に、クローンされるデータの読み込みを3回試行して、不良ブロックのみをクローンする。<br>もし、読み込みできない場合は、該当ブロックのデータはクローンしない。 #: <code>sudo ddrescue -d -r3 <クローン元のストレージ> <クローン先のストレージ> <エラーをマッピングするファイル></code> #: 例 : <code>sudo ddrescue -d -r3 /dev/sd<span style="color:#C00000">X</span> /dev/sd<span style="color:#C00000">Y</span> ~/rescue2.map</code> #: <br> # クローン先のストレージのファイルシステムが正常かどうかを確認する。 #: <code>sudo fsck -f /dev/sd<span style="color:#C00000">Y</span></code> <br> ==== sgdiskコマンド ==== GPT(GUID Partition Table)とは、グローバル一意識別子(GUID)を使用したストレージ上のパーティションテーブルのレイアウトの規格である。<br> GPTは、パーティションテーブルのレイアウトを定義するEFI標準の一部である。<br> <br> <code>sgdisk</code>は、コマンドラインGUIDパーティションテーブルマニピュレータである。<br> <code>sgdisk</code>コマンドを使用してGPTパーティションテーブルを別のディスクにクローンする。<br> sudo sgdisk -R <クローン先のストレージ> <クローン元のストレージ> <br> パーティションテーブルをクローンした後、クローン先のストレージに新しいGUIDを設定する。<br> sudo sgdisk -G /dev/sd<span style="color:#C00000">X</span> <br> ==== Clonezilla ==== [https://clonezilla.org/downloads.php Clonezillaの公式サイト]からイメージファイル(Stable)をダウンロードする。<br> ダウンロードしたイメージファイルをUSBメモリ等へ書き込む。<br> <br> PCをシャットダウンして、クローン先のストレージとUSBメモリをPCに接続する。<br> PCの電源を投入して、UFEI/BIOS画面から起動ディスクを選択してUSBメモリからClonezillaを起動する。<br> <br> [Clonezilla live (VGA with large font & To RAM)]を選択して[Enter]キーを押下する。<br> 表示言語を選択した後、[キーボードの種類]を選択する。<br> [Start Clonezilla] - [device-device] - [Beginner mode] - [disk_to_local_disk]を選択する。<br> <br> まず、[Choose local disk as source]画面に切り替わるので、<u>クローン元のストレージを選択</u>する。<br> 次に、[Choose local disk as target]画面に切り替わるので、<u>クローン先のストレージを選択</u>する。<br> [オプション選択]画面では、[-sfsck]を選択する。<br> [-p choose]または[-p poweroff]を選択する。<br> <br> [クローン実行]画面に切り替わるので、[Enter]キーを押下する。<br> [Are you sure you want to continue?(y/n)]メッセージでは、クローン先のストレージを確認して[Y]キーを押下する。<br> 再度、[Are you sure you want to continue?(y/n)]メッセージが表示されるので、[Y]キーを押下する。<br> クローンが実行される。<br> <br> クローンの終了後、[Enter]キーを押下する。<br> エラーメッセージが無ければ正常に成功している。<br> <br> [poweroff]を選択してClonezillaを終了する。<br> <br><br> == ストレージの総書き込み量(TBW) == ==== SmartMonToolsのインストール ==== まず、SmartMonToolsをインストールする。<br> * パッケージ管理システムからインストールする場合 *# <code>sudo zypper install smartmontools</code> *: <br> * ソースコードからインストールする場合 *# [https://github.com/smartmontools/smartmontools/releases SmartMonToolsのGithub]からソースコードをダウンロードする。 *# ダウンロードしたファイルを解凍する。 *#: <code>tar xf smartmontools-<バージョン>.tar.gz</code> *#: <code>cd smartmontools-<バージョン>.tar.gz</code> *# ビルドディレクトリを作成する。 *#: <code>mkdir build && cd build</code> *# SmartMonToolsをビルドおよびインストールする。<br> *#: <code>../configure --prefix=<SmartMonToolsのインストールディレクトリ> \</code> *#: <code>--sbindir=/<SmartMonToolsのインストールディレクトリ>/sbin \</code> *#: <code>--sysconfdir=/<SmartMonToolsのインストールディレクトリ>/etc \</code> *#: <code>--localstatedir=/<SmartMonToolsのインストールディレクトリ>/var \</code> *#: <code>--datarootdir=/<SmartMonToolsのインストールディレクトリ>/share</code> *#: <code>--with-nvme-devicescan --without-libsystemd</code> *#: <br> *#: <code>make -j $(nproc)</code> *#: <code>make install</code> <br> ==== GSmartControlのインストール (任意) ==== 必要ならば、GSmartControlをインストールしてもよい。<br> * パッケージ管理システムからインストールする場合 *# <code>sudo zypper install gsmartcontrol</code> *: <br> * ソースコードからインストールする場合 *# GSmartControlのビルドに必要なライブラリをインストールする。 *#: <code>sudo zypper install pcre-devel gtk3-devel gtkmm3-devel</code> *#: <br> *# [https://gsmartcontrol.shaduri.dev/downloads GSmartControlの公式Webサイト]または[https://github.com/ashaduri/gsmartcontrol GSmartControlのGithub]からソースコードをダウンロードする。 *# ダウンロードしたファイルを解凍する。 *#: <code>tar xf gsmartcontrol-<バージョン>.tar.gz</code> *#: <code>cd gsmartcontrol-<バージョン>.tar.gz</code> *# ビルドディレクトリを作成する。 *#: <code>mkdir build && cd build</code> *# GSmartControlをビルドおよびインストールする。<br> *#: <code>../configure --prefix=<GSmartControlのインストールディレクトリ></code> *#: <code>make -j $(nproc)</code> *#: <code>make install</code> *#: <br> *# GSmartControlのPolKitポリシーファイルを作成する。 *#: <code>sudo vi /usr/share/polkit-1/actions/org.gsmartcontrol-UserAdd.policy</code> <br> <syntaxhighlight lang="xml"> # /usr/share/polkit-1/actions/org.gsmartcontrol-UserAdd.policyファイル <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE policyconfig PUBLIC "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN" "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd"> <policyconfig> <action id="org.gsmartcontrol"> <message>Authentication is required to run GSmartControl</message> <icon_name>gsmartcontrol</icon_name> <defaults> <allow_any>no</allow_any> <allow_inactive>no</allow_inactive> <allow_active>auth_admin</allow_active> </defaults> <annotate key="org.freedesktop.policykit.exec.path">/GSmartControlのインストールディレクトリ/sbin/gsmartcontrol</annotate> <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate> </action> </policyconfig> </syntaxhighlight> <br> GSmartControlのデスクトップエントリファイルを作成する。<br> vi ~/.local/share/applications/GSmartControl.desktop <br> # ~/.local/share/applications/GSmartControl.desktopファイル [Desktop Entry] Version=1.0 Type=Application Name=GSmartControl GenericName=Hard Disk and SSD Health Inspection Comment=Monitor and control SMART data on hard disk and solid-state drives # Run with root permissions. Exec="/<GSmartControlnのインストールディレクトリ>/bin/gsmartcontrol-root" # If it's a name only, it looks for "name.[png|xpm]" file in # $XDG_DATA_DIRS/icons and /usr/share/pixmaps. # An absolute file path is also supported. Icon=/<GSmartControlnのインストールディレクトリ>/share/icons/hicolor/128x128/apps/gsmartcontrol.png Categories=System;Monitor; # Run with root permissions. This should work with newer GNOME too. # It _should_ work with kde, but it hangs on mine, so use plain kdesu. #X-KDE-SubstituteUID=true #X-KDE-RootOnly=true <br> ==== ストレージの総書き込み量(TBW)の確認 ==== SmartMonToolsを実行して、以下の項目を確認する。<br> * Sector Size * Total_LBAs_Written * Total_Writes_GiB (<code>Total_LBAs_Written</code>項目が存在しない場合) * Logical Sectors Written (<code>Total_Writes_GiB</code>項目および<code>Total_LBAs_Written</code>項目が存在しない場合) sudo smartctl -ax /dev/sd<span style="color:#C00000">X</span> | grep '\(Total_LBAs_Written\|Total_Writes_GiB\|Logical Sectors Written\|Sector Size\)' <br> 上記で確認した値から、ストレージの総書き込み量(TBW)を求める。<br> <math>\mbox{[TBW]} = \frac{\mbox{Sector Size} \times \mbox{Total LBAs Written} \, (or \quad \mbox{Total Writes GiB} \quad or \quad \mbox{Logical Sectors Written})}{1024^4}</math> <br><br> == ストレージのベンチマーク == ==== fioコマンドの使用 ==== sudo fio --loops=3 --size=1000m --filename=/mnt/fs/fiotest.tmp --stonewall --ioengine=libaio --direct=1 \ --name=Seqread --bs=4m --rw=read \ --name=Seqwrite --bs=4m --rw=write \ --name=512Kread --bs=512k --rw=randread \ --name=512Kwrite --bs=512k --rw=randwrite \ --name=4kQD32read --bs=4k --iodepth=32 --rw=randread \ --name=4kQD32write --bs=4k --iodepth=32 --rw=randwrite sudo rm -f /mnt/fs/fiotest.tmp <br> ==== ベンチマーク用シェルスクリプトの使用 ==== 以下に示すリンクから、ベンチマーク用シェルスクリプトをダウンロードして、スーパユーザ権限で実行する。<br> このシェルスクリプトは、<code>fio</code>コマンドと<code>df</code>コマンドが必要であることに注意する。<br> [[ファイル:Benchmark for NVMe.zip|フレームなし]]<br> <br> ==== KDiskMarkの使用 ==== * パッケージ管理システムからインストールする場合 *: <code>sudo zypper install kdiskmark</code> *: <br> * ソースコードからインストール場合 *: KDiskMarkのビルドに必要なライブラリをインストールする。 *: <code>sudo zypper install cmake extra-cmake-modules libQt5Core-devel libQt5DBus-devel libQt5Widgets-devel libQt5Network-devel libqt5-linguist libqt5-linguist-devel \</code> *: <code>libpolkit-qt5-1-devel libaio-devel libbfio-devel</code> *: <br> *: [https://github.com/JonMagon/KDiskMark/ KDiskMarkのGithub]にアクセスして、ソースコードをダウンロードする。 *: ダウンロードしたファイルを解凍する。 *: <code>tar xf kdiskmark-<バージョン></code> *: <code>cd kdiskmark-<バージョン></code> *: <br> *: KDiskMarkをビルドおよびインストールする。 *: <code>mkdir build && cd build</code> *: <code>cmake -DCMAKE_BUILD_TYPE=Release --DCMAKE_INSTALL_PREFIX=<KDiskMarkのインストールディレクトリ> ..</code> *: <code>make -j $(nproc)</code> *: <code>make install</code> <br><br> == ブロックデバイスの暗号化 == Linuxカーネルは、ブロックデバイスごと、および、作成済みのファイルシステムを暗号化する機能をサポートしている。<br> <br> ブロックデバイスごとに暗号化する機能には、<code>cryptsetup</code>コマンドや<code>cryptmount</code>コマンド等を使用する。<br> 作成済みのファイルシステムを暗号化するには、<code>eCryptfs</code>や<code>EncFS</code>等を使用する。<br> <br> ==== 暗号化パーティションの作成 ==== 以下の例では、/dev/sdc4パーティションに対して、cryptsetupを使用して暗号化パーティションを作成している。<br> sudo cryptsetup luksFormat /dev/sdXY # 出力例 WARNING! ======== This will overwrite data on /dev/sdc4 irrevocably. Are you sure? (Type uppercase yes): YES Enter passphrase for /dev/sdc4: # パスワードを入力する Verify passphrase: # 再度パスワードを入力する <br> ==== 初期化したLUKSパーティションをマッピング ==== sudo cryptsetup luksOpen /dev/sdXY <マッピング名> <br> ==== 暗号化されたパーティションをフォーマット(初回のみ) ==== sudo mkfs.<ファイルシステムの種類> <マッピング先のディレクトリ> # 例 sudo mkfs.ext4 <マッピング先のディレクトリ> <br> ==== マウント ==== sudo mount <マッピング先のディレクトリ> <マウント先のディレクトリ> <br> ==== 暗号化したデバイスを削除 ==== # アンマウント sudo umount <マウント先のディレクトリ> # LUKSパーティションの削除 sudo cryprsetup luksClose <マッピング名> <br> ==== 再度LUKSパーティションを作成する ==== LUKSパーティションを作成して、マウントする。(最初に設定したパスワードを入力する)<br> フォーマットする必要はない。(<u>データが全て削除されてしまうため注意すること</u>)<br> sudo cryptsetup luksOpen /dev/sd<span style="color:#C00000">X</span><span style="color:#008000">Y</span> <マッピング名> # <span style="color:#C00000">X</span> : ストレージ番号, <span style="color:#008000">Y</span> : パーティション番号 sudo mount <マッピング先のディレクトリ> <マウント先のディレクトリ> <br><br> == エラー関連 == ==== ファイルおよびディレクトリの削除 ==== バックアップディレクトリ等を削除する時、以下のようなエラーが発生する場合がある。(ext4で確認済み)<br> rm: cannot remove '<ファイル名またはディレクトリ名>': Read-only file system <br> この時、ファイルシステムを読み書き可能な状態に再マウントする。<br> sudo mount -o remount,rw /run/media/<ユーザ名>/<ストレージのラベル名> <br> 再マウントする時に、以下に示すようなエラーが出力される場合がある。<br> ... read-write, is write-protected ... <br> この時、ファイルシステムを復元する。<br> sudo fsck /dev/sd<span style="color:#C00000">X</span><span style="color:#00C000">Y</span> # <span style="color:#C00000">X</span>はドライブ名 # <span style="color:#00C000">Y</span>はパーティション名 <br><br> __FORCETOC__ [[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]]
設定 - ストレージ
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse