古い PC の片付け (1)
◆ HDD の中を確認したい
◆ parted や fdisk で全パーティションの確認
◆ LVM は lvscan などのコマンドでパーティションとの対応を確認
◆ fdisk でも LVM のパーティション一覧が見れるけど対応まではわからない
◆ 簡単に見るだけなら lsblk コマンドも良さそう
◆ parted や fdisk で全パーティションの確認
◆ LVM は lvscan などのコマンドでパーティションとの対応を確認
◆ fdisk でも LVM のパーティション一覧が見れるけど対応まではわからない
◆ 簡単に見るだけなら lsblk コマンドも良さそう
4 月になって 年度も変わったことなので 片付けをしていると 何年も使ってなかった古いPCを発掘しました
捨てる前に動くか確認してみると 起動しなかったり 一部デバイスが壊れていたりだったのですが 色々試してるとどうにか起動までできました
起動したのは fedora で GUI なしのサーバのようです
しかし ホームフォルダなどを見た感じでは Gnome か KDE あたりのデスクトップ環境を使ってたようです
以前この PC では Windows や Ubuntu を使った気もしますが fedora 用 LVM ボリューム内なので Windows などのデータがホームにあるわけではなさそうです
GUI が起動できなくて CUI モードみたいですが 目的はストレージ内に必要なデータが残っていないかの確認なので CUI のままデータを確認することにします
parted で見てみます
パーティションは全部で 5 つあるようです
この 2 に最後まで苦労させられたのですが extended という Type は拡張領域でこれ自体には実体はないものでした
同じ Start/End になってる 5 が実体です
単に Size を全部足すとディスクサイズの 80GB を超えてるところでも気づけたのですが 全然気づかなかったです
5 が先に来てるのも 単に parted が Number でソートしてくれない不便な仕様なんだくらいにしか思ってませんでした
そういえば パーティションテーブルが msdos(MBR) 形式だと 4 つまでしかパーティションが作れないとかいう制限がありましたね
その対策で 4 つ以上のパーティションを作るには 1 つを拡張領域として その中に論理的に複数のパーティションを作るという仕組みです
今回だと実際にはちょうど 4 つなので 拡張領域いらない気もするのですが 拡張領域を作っておかないと後から追加したくなったときにどうしようもなくなるので 4 つ以上のパーティションを作るときには必ず作るのかもです
今回の HDD だと拡張領域のパーティションの位置的には 2 つめの段階で作ってたようですけど……
とりあえず mount して中身を確認します
単純にやってできたのは 1 だけでした
boot ポイ中身でしたが parted の Flags にもそう書いてました
普通に mount できたということは別 OS 用みたいです
2 は上に書いたように mount する実体ではないのでエラーで 4, 5 は LVM ボリュームだったのでそのままではエラーです
fdisk って昔の物というイメージで parted しか使ってなかったのですが parted より優れてるところもあったんですね
「/dev/mapper/fedora--server-root」 みたいな LVM ボリュームの中身まで見れました
mount していない別 OS 用の中身まで見れています
普通に中身が見れそうなので LVM のコマンドの scan 系を使ってみました
見れてますね
sda4 が Fedora で sda5 が Ubuntu のようです
swap は見る必要がなくて fedora-server は今起動中のものなので 「/dev/ubuntu/vg/root」 だけ見れば良さそうです
すでに ACTIVE なのでこのまま mount できるはずです
これで Ubuntu 側の中身まで見れて一通り確認できました
残るパーティションが Ubuntu のみと分かれば Ubuntu の方を起動でもよかったのですが 起動時にエラーが出て起動できなかったので Fedora から見れて助かりました
フォーマット直後ならともかく 何が入ってるかわからないディスクだと困ります
Windows ならだいたい NTFS で外付けなら FAT32 や exFAT もあるくらいですが Linux だと ext4 や xfs や btrfs など色々です
parted なら ext2 とか ext4 は見れてましたが 毎回調べる必要がありますし LVM の中だとわかりません(LVM 用の別コマンドで見れるかもですけど)
自動で検出できないのかなと調べてみたら 未指定や auto の指定で自動でやってくれるようです
試してみたら ext2 や ext4 は未指定で普通に mount できました
試してませんが VirtualBox の vboxsf や Windows のフォルダ共有の cifs や WSL の drvfs みたいな少し特殊なものはできないかもです
ただ とりあえず -t は省略して 自動検出でエラーが出たときだけつければ十分かもです
複数の HDD をつないでいても まとめて見れますし ツリー形式なので見やすいです
sda の中の sda1 や sda2 だけでなく sda2 が LVM ボリュームだとその中のボリューム名もリストアップしてくれるようです
今回みたいなときに最初に実行するのは parted や fdisk よりも lsblk のほうが良いかもです
捨てる前に動くか確認してみると 起動しなかったり 一部デバイスが壊れていたりだったのですが 色々試してるとどうにか起動までできました
起動したのは fedora で GUI なしのサーバのようです
しかし ホームフォルダなどを見た感じでは Gnome か KDE あたりのデスクトップ環境を使ってたようです
以前この PC では Windows や Ubuntu を使った気もしますが fedora 用 LVM ボリューム内なので Windows などのデータがホームにあるわけではなさそうです
GUI が起動できなくて CUI モードみたいですが 目的はストレージ内に必要なデータが残っていないかの確認なので CUI のままデータを確認することにします
マウントされていないパーティション
とりあえず df を見てみると 思ったよりサイズが小さめで マウントされていないパーティションが他にいくつかありそうですparted で見てみます
[root@localhost]~# parted
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: ATA Hitachi HTS54328 (scsi)
Disk /dev/sda: 80.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 256MB 255MB primary ext2 boot
2 257MB 30.3GB 30.1GB extended
5 257MB 30.3GB 30.1GB logical lvm
3 30.3GB 30.8GB 524MB primary ext4
4 30.8GB 80.0GB 49.2GB primary lvm
(parted)
パーティションは全部で 5 つあるようです
この 2 に最後まで苦労させられたのですが extended という Type は拡張領域でこれ自体には実体はないものでした
同じ Start/End になってる 5 が実体です
単に Size を全部足すとディスクサイズの 80GB を超えてるところでも気づけたのですが 全然気づかなかったです
5 が先に来てるのも 単に parted が Number でソートしてくれない不便な仕様なんだくらいにしか思ってませんでした
そういえば パーティションテーブルが msdos(MBR) 形式だと 4 つまでしかパーティションが作れないとかいう制限がありましたね
その対策で 4 つ以上のパーティションを作るには 1 つを拡張領域として その中に論理的に複数のパーティションを作るという仕組みです
今回だと実際にはちょうど 4 つなので 拡張領域いらない気もするのですが 拡張領域を作っておかないと後から追加したくなったときにどうしようもなくなるので 4 つ以上のパーティションを作るときには必ず作るのかもです
今回の HDD だと拡張領域のパーティションの位置的には 2 つめの段階で作ってたようですけど……
とりあえず mount して中身を確認します
単純にやってできたのは 1 だけでした
boot ポイ中身でしたが parted の Flags にもそう書いてました
普通に mount できたということは別 OS 用みたいです
2 は上に書いたように mount する実体ではないのでエラーで 4, 5 は LVM ボリュームだったのでそのままではエラーです
LVM ボリューム
parted 以外にどうやって見るか探していると fdisk で多くの情報が出てる例を見つけたので fdisk を使ってみましたfdisk って昔の物というイメージで parted しか使ってなかったのですが parted より優れてるところもあったんですね
Disk /dev/sda: 74.5 GiB, 80026361856 bytes, 156301488 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000c69df
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 499711 497664 243M 83 Linux
/dev/sda2 501758 59228159 58726402 28G 5 Extended
/dev/sda3 59228160 60252159 1024000 500M 83 Linux
/dev/sda4 60252160 156301311 96049152 45.8G 8e Linux LVM
/dev/sda5 501760 59226111 58724352 28G 8e Linux LVM
Partition table entries are not in disk order.
Disk /dev/mapper/fedora--server-root: 42.9 GiB, 46040875008 bytes, 89923584 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/fedora--server-swap: 2.9 GiB, 3087007744 bytes, 6029312 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/ubuntu--vg-swap_1: 3 GiB, 3221225472 bytes, 6291456 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/ubuntu--vg-root: 25 GiB, 26843545600 bytes, 52428800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
「/dev/mapper/fedora--server-root」 みたいな LVM ボリュームの中身まで見れました
mount していない別 OS 用の中身まで見れています
普通に中身が見れそうなので LVM のコマンドの scan 系を使ってみました
[root@localhost]~# pvscan
PV /dev/sda5 VG ubuntu-vg lvm2 [28.00 GiB / 0 free]
PV /dev/sda4 VG fedora-server lvm2 [45.80 GiB / 44.00 MiB free]
Total: 2 [73.80 GiB] / in use: 2 [73.80 GiB] / in no VG: 0 [0 ]
[root@localhost]~# vgscan
[root@localhost]~# vgscan
Reading all physical volumes. This may take a while...
Found volume group "ubuntu-vg" using metadata type lvm2
Found volume group "fedora-server" using metadata type lvm2
[root@localhost]~# lvscan
[root@localhost]~# lvscan
ACTIVE '/dev/ubuntu-vg/root' [25.00 GiB] inherit
ACTIVE '/dev/ubuntu-vg/swap_1' [3.00 GiB] inherit
ACTIVE '/dev/fedora-server/swap' [2.88 GiB] inherit
ACTIVE '/dev/fedora-server/root' [42.88 GiB] inherit
見れてますね
sda4 が Fedora で sda5 が Ubuntu のようです
swap は見る必要がなくて fedora-server は今起動中のものなので 「/dev/ubuntu/vg/root」 だけ見れば良さそうです
すでに ACTIVE なのでこのまま mount できるはずです
mount /dev/ubuntu-vg/root /mnt
これで Ubuntu 側の中身まで見れて一通り確認できました
残るパーティションが Ubuntu のみと分かれば Ubuntu の方を起動でもよかったのですが 起動時にエラーが出て起動できなかったので Fedora から見れて助かりました
mount
これまで mount コマンドではいつも -t を指定していましたが 今回思ったのは「事前にわからない場合ってけっこうある」ですフォーマット直後ならともかく 何が入ってるかわからないディスクだと困ります
Windows ならだいたい NTFS で外付けなら FAT32 や exFAT もあるくらいですが Linux だと ext4 や xfs や btrfs など色々です
parted なら ext2 とか ext4 は見れてましたが 毎回調べる必要がありますし LVM の中だとわかりません(LVM 用の別コマンドで見れるかもですけど)
自動で検出できないのかなと調べてみたら 未指定や auto の指定で自動でやってくれるようです
試してみたら ext2 や ext4 は未指定で普通に mount できました
試してませんが VirtualBox の vboxsf や Windows のフォルダ共有の cifs や WSL の drvfs みたいな少し特殊なものはできないかもです
ただ とりあえず -t は省略して 自動検出でエラーが出たときだけつければ十分かもです
lsblk
後から知ったのですが lsblk というコマンドでブロックデバイスリストが見れました複数の HDD をつないでいても まとめて見れますし ツリー形式なので見やすいです
sda の中の sda1 や sda2 だけでなく sda2 が LVM ボリュームだとその中のボリューム名もリストアップしてくれるようです
今回みたいなときに最初に実行するのは parted や fdisk よりも lsblk のほうが良いかもです