Raspberry Piの用途の一つとして、ファイルサーバとして使ってます。
その時の記事はこちら。
Raspberry Pi 4にOpenMediaValutを導入してNASとして使う
RaspberryPiの可能性は無限大!
この時はMac miniのバックアップ用として2TBの外付けHDDをNAS領域として使っていたんだけど、
色々とファイルを保存していくうちに容量が枯渇。
買い替え、というか外付けHDDの買い増しをおこなった。
Amazonでタイムセールだったので、バッファローの6TBを購入!
たまたまなのか偶然なのか、このシリーズの4TBをリビングの録画用として使ってるw
WindowsPCならこのHDDを接続してフォーマットしてハイ終わり!なんだけど、
既に2TBに入っているデータを引っ越ししつつ、Linuxとして6TBのHDDとして認識させる、といったちょっと難しいことをやります。
ddコマンドでHDD丸ごとコピー
データのコピーはいろんなやり方があると思うけど、
何も考えずにddで丸ごとコピーしてからファイルシステム拡張というベタな方法で。
RaspberryPi4はUSB3ポートが2つ付いているので、新旧のHDDをそれぞれ接続。
初めはUSB3とUSB2でコピーしたんだが、想像以上に遅かったのでUSB3接続じゃないとダメだったw
Pi上で以下のコマンドを実行すればOK。
"/dev/sda"がコピー元のHDD、"/dev/sdb"がコピー先のHDDね。
事前に"fdisk -l /dev/sda"等で確認。
sudo dd if=/dev/sda of=/dev/sdb bs=1024k status=progress
ほぼほぼ2TBのデータコピーに4時間かかった。
2000367386624 bytes (2.0 TB, 1.8 TiB) copied, 14200 s, 141 MB/s 1907729+1 records in 1907729+1 records out 2000398934016 bytes (2.0 TB, 1.8 TiB) copied, 14200.3 s, 141 MB/s
パーティション拡張
ddコマンドでコピーが終えたらデータのコピーが終わっているんだけど、ディスクの容量も2TBのまま。
このままだと4TB分が損するので、領域を拡張してあげる。
まずはパーティションの拡張。
以下のコマンドを実行して現在の状況を確認。
sudo su parted -l
途中でWarningが出て、「なんかおかしいで」って教えてくれるので修正(Fix)する。
Warning: Not all of the space available to /dev/sdb appears to be used, you can fix the GPT to use all of the space (an extra 7814016000 blocks) or continue with the current setting? Fix/Ignore? Fix ← Model: BUFFALO External HDD (scsi) Disk /dev/sdb: 6001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 2000GB 2000GB ext4
次にパーティションの空き領域を増やす。
続けて以下のコマンドを実行。
parted /dev/sdb GNU Parted 3.2 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print free ← Model: BUFFALO External HDD (scsi) Disk /dev/sdb: 6001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 17.4kB 1049kB 1031kB Free Space 1 1049kB 2000GB 2000GB ext4 2000GB 6001GB 4001GB Free Space ^^^^^^
この一番最後(End)の値を覚えておく。
"resizepart"でパーティションを拡張。
(parted) resizepart 1 Warning: Partition /dev/sdb1 is being used. Are you sure you want to continue? Yes/No? yes ← End? [2000GB]? 6001GB ← (parted)
再度"print free"で最大まで拡張されたことを確認する。
(parted) print free Model: BUFFALO External HDD (scsi) Disk /dev/sdb: 6001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 17.4kB 1049kB 1031kB Free Space 1 1049kB 6001GB 6001GB ext4 6001GB 6001GB 175MB Free Space
あとは"quit"で終了。
次はファイルシステム拡張。HDDでマウントしてたらumountしておく。
ファイルシステムチェックと拡張
ext4というファイルシステムを使っているので、"resize2fs"でファイルシステムを拡張すればいいんだけど、
その前にe2fsckしろって怒られたので、先にファイルシステムのチェックを行う。
e2fsck -f /dev/sdb1
俺の場合は大量にファイルを保存していたのか、破損というかinodeの誤りが結構あった。
全て"Fix"ということでひたすら"y"キーを押す。
以下のような感じでファイルシステムの修復が完了と出ればOK。
/dev/sdb1: ***** FILE SYSTEM WAS MODIFIED ***** /dev/sdb1: 10165/122101760 files (0.3% non-contiguous), 488143207/488378385 blocks
次にやっとファイルシステム拡張。
resize2fs /dev/sdb1 resize2fs 1.44.5 (15-Dec-2018) Resizing the filesystem on /dev/sdb1 to 1465087634 (4k) blocks. The filesystem on /dev/sdb1 is now 1465087634 (4k) blocks long.
以上で拡張完了。
"mount -a"で再度マウントされる。不安なら再起動すればOK。
問題なく拡張されたどうかを確認する。
df -k /dev/sdb1 Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb1 5767314544 1920833068 3846465092 34% /mnt/usbhdd
いやー、久々にこんなのやったわw
Linux系でもGUIであればポチポチ操作できるんだと思うけど、コマンドで操作するとより一層理解が深まって勉強になるね!
SEは日々勉強!
余った2TBはUSB2.0の方に繋いでMacのバックアップ用とかにしようかな。
0 件のコメント:
コメントを投稿