【Ubuntu】外付けHDDの接続・フォーマット
Linuxでの外付けHDDの接続・フォーマット方法を記載します。
* 手順
- 外付けHDDを挿入し、デバイスファイルを確認する
外付けHDDを挿入するとデバイスファイルが作成されるので、
dmesg
コマンドで作成されたデバイスファイルを確認します。[ 243.716956] usb-storage 1-1.3:1.0: USB Mass Storage device detected [ 243.717805] scsi host0: usb-storage 1-1.3:1.0 [ 243.718366] usbcore: registered new interface driver usb-storage [ 243.730245] usbcore: registered new interface driver uas [ 244.737224] scsi 0:0:0:0: Direct-Access MARSHAL MARSHAL_EXTERNAL 0 PQ: 0 ANSI: 6 [ 244.738834] sd 0:0:0:0: Attached scsi generic sg0 type 0 [ 244.741174] sd 0:0:0:0: [sda] Spinning up disk... [ 245.759932] ..ready [ 246.786853] sd 0:0:0:0: [sda] 3907029168 512-byte logical blocks: (2.00 TB/1.82 TiB) [ 246.787520] sd 0:0:0:0: [sda] Write Protect is off [ 246.787539] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00 [ 246.788350] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [ 247.010626] sda: sda1 sda2 [ 247.033816] sd 0:0:0:0: [sda] Attached SCSI disk
- フォーマットする
sudo mkfs -t ext4 /dev/sda
私は今回ext4にフォーマットしたいのでext4を指定しています。
この時表示されるUUIDは後で使うので控えておいてください。ubuntu@ubuntu:~$ sudo mkfs -t ext4 /dev/sda mke2fs 1.45.5 (07-Jan-2020) Found a gpt partition table in /dev/sda Proceed anyway? (y,N) y Creating filesystem with 488378646 4k blocks and 122101760 inodes Filesystem UUID: e1795d2f-db0a-4e61-aef9-1112dc355f02 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848 Allocating group tables: done Writing inode tables: done Creating journal (262144 blocks): done Writing superblocks and filesystem accounting information: done
- 手動でマウントする
sudo mount /dev/sda /mnt/hdd
私は今回/mnt/hddにマウントしたいのでを指定しています。
みなさんは適時読み替えてください。df
コマンドでマウントできたか確認できます。/dev/sda 1921803544 77852 1824033580 1% /mnt/hdd
- 自動マウント設定をする
自動マウントするためには、設定を
/etc/fstab
ファイルに書き込みます。
UUIDはフォーマット時に表示されたものを使用しますので注意してください。UUID=e1795d2f-db0a-4e61-aef9-1112dc355f02 /mnt/hdd ext4 defaults 0 0
sudo mount -a
でこの設定を基に手動マウントできます。
再起動前に設定が正しいか確認しておくといいですよ。
【Raspberry Pi】OS初期設定
Raspberry Pi初回起動時の対応を記載します。
事前に電源やLANケーブル等を差しておいてください。
* ①OS初起動
- OSが立ち上がったらログインする
login:
password:Ubuntuの場合は、上記の画面が出ますので、Login・Passwordともに
ubuntu
で入力してください。Current password:
New password:初回ログイン時はこのままパスワード変更できますので、
Current
には現在のパスワードをNew
には変更後のパスワードを入力してください。 - 現在のIPアドレスを確認する
ubuntu@ubuntu:~$ ip a eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff inet 192.168.1.2/16 brd 192.168.255.255 scope global dynamic eth0 valid_lft 257997sec preferred_lft 257997sec inet6 fe80::ba27:ebff:fe1e:a7e6/64 scope link valid_lft forever preferred_lft forever
- パッケージのアップデートをする
パッケージが古くなっている可能性があるので、下記のコマンドでアップデートしてください。
sudo apt update sudo apt upgrade
* 備考
画面右上にカミナリマークが出た場合は電力が足りていないので、電源ケーブルを購入してください。
【Raspberry Pi】OS書き込み
Micro SDカードにRaspberry Pi用のOSを書き込む方法を下記手順で説明します。
①OS書き込みツールのインストール
②Micro SDカードへのOS書き込み
今回はRaspberry Pi Imagerを使用します。
* ①OS書き込みツールのインストール
書き込みツール(Raspberry Pi Imager)インストーラのダウンロード
下記サイトからダウンロードします。
www.raspberrypi.comダウンロードしたexeファイルを実行する
表示された画面の指示に沿ってインストールします。
* ②SDカードへのOS書き込み
- 書き込みツール(Raspberry Pi Imager)を実行
OSとストレージを選択する
私はOSに「Ubuntu Server 20.04.4 LTS」を選択しました。
下記手順で選択できます
「Other general-purpose OS」
→「Ubuntu」
→「Ubuntu Server 20.04.4 LTS」書き込みボタンを押す
書き込みには時間がかかります。 私は15分ほどかかりました。
この画面が出たら書き込み完了です。
SDカードを抜いてください
* 備考
私のPCは直接MicroSDカードがさせなかったので、下記を使用しました。
www.yamada-denkiweb.com【VBA】テキストファイルを書き込む
VBAでテキストファイルを書き込む方法を紹介します。
* 説明
①ファイルを開くにはOpenステートメントを利用する。
Open ファイル名 For ファイル モード Access ファイルの開き方 As ファイル番号
説明 | 例 | |
---|---|---|
ファイル名 | 開けるファイル名を指定する文字列 | C:\temp\test.txt |
ファイル モード | ファイル モードを指定する キーワード Append Binary Input Output Random |
Binary |
ファイルの開き方 | 開いたファイルに対して許可される操作を指定するキーワード Read Write Read Write |
Read |
ファイル番号 | 有効なファイル番号 次に使用可能なファイル番号を取得するには、FreeFile 関数を使用する |
1 |
②Openステートメント用に、有効なファイル番号を取得する。
Dim lFNum As Integer lFNum = FreeFile
③ファイルにテキストを書き込む
Print ファイル番号(①で指定した番号), 書き込む文字列
④ファイルを閉じる
Close ファイル番号
* おまけ
使いやすいように関数化してみました。
Sub WriteTextFile(aFilePath As String, aText As String) '②有効なファイル番号を取得する Dim lFNum As Integer lFNum = FreeFile '①指定ファイルを開く Open aFilePath For Output Access Write As #lFNum '③ファイルにテキストを書き込む Print #lFNum, aText '④ファイルを閉じる Close #lFNum End Sub
下記のように呼び出して使えます。
Sub WriteTextriteText() Dim lWPath As String lWPath = "C:\temp\Write.txt" Dim ltxt As String ltxt = "書き込む文字列" Call WriteTextFile(lWPath, ltxt) End Sub
ぜひ使ってみてください!
【VBA】バイナリファイルを読み込む
VBAでバイナリファイルを読み込む方法を紹介します。
* 説明
①ファイルを開くにはOpenステートメントを利用する。
Open ファイル名 For ファイル モード Access ファイルの開き方 As ファイル番号
説明 | 例 | |
---|---|---|
ファイル名 | 開けるファイル名を指定する文字列 | C:\temp\test.txt |
ファイル モード | ファイル モードを指定する キーワード Append Binary Input Output Random |
Binary |
ファイルの開き方 | 開いたファイルに対して許可される操作を指定するキーワード Read Write Read Write |
Read |
ファイル番号 | 有効なファイル番号 次に使用可能なファイル番号を取得するには、FreeFile 関数を使用する |
1 |
②Openステートメント用に、有効なファイル番号を取得する。
Dim lFNum As Integer lFNum = FreeFile
③ファイルサイズを取得し、ファイルから取り出すデータのサイズを取得する。
Dim lFileSize As Long lFileSize = FileLen (ファイル名)
ファイルをOpenする前にサイズを撮る場合にFileLen関数を使います。
ファイルをOpenしてからサイズを撮りたい場合はLOF関数を使用してください。
④ファイルからデータを取得する
Dim lBin() As Byte Get ファイル番号(①で指定した番号), , lBin
⑤ファイルを閉じる
Close ファイル番号
* おまけ
使いやすいように関数化してみました。
Function ReadlBinFile(aFilePath As String) As Byte() Dim lBin() As Byte '③ファイルサイズを取得する Dim lFileSize As long lFileSize = FileLen(aFilePath) If lFileSize = 0 Then 'ファイルサイズが0ならば処理を抜ける ReadlBinFile = lBin Exit Function End If ReDim lBin(lFileSize) '②有効なファイル番号を取得する Dim lFNum As Integer lFNum = FreeFile '①指定ファイルを開く Open aFilePath For Binary Access Read As lFNum '④ファイルからデータを取得する Get lFNum, , lBin '⑤ファイルを閉じる Close lFNum ReadlBinFile = lBin End Function
下記のように呼び出して使えます。
Sub ReadBin() Dim lPath As String lPath = "C:\temp\test.txt" Dim lBin() As Byte lBin = ReadlBinFile(lPath) Debug.Print ConvertBinToText(lBin) End Sub
C:\temp\test.txt
12345 12345
出力結果
31323334350D0A0D0A3132333435
確認に使ってるConvertBinToText関数は下記のリンクにあります。
wakao-institute.hatenablog.com
ぜひ使ってみてください!
【VBA】変換まとめ
VBAの変換処理を紹介します。
まだ工事中です。
* ①Byte→String
Function ConvertBinToText(aSrc() As Byte) As String Dim i As Long For i = 0 To UBound(aSrc) Dim lHex As String '1バイトずつ16進数に変換 lHex = Right$("00" & Hex(aSrc(i)), 2) lDst = lDst + lHex DoEvents Next ConvertBinToText = lDst End Function
変換とは直接関係ないですが、変換サイズが大きすぎると固まるので”DoEvents”を追記しています。