2017/01/12 15:20:53

Windowsがインストールされているストレージの空き容量をLinuxで活用する

目次(クリックするとジャンプします)
  • 1:ストレージの容量が足りなくなってきた
  • 2:Windows側での作業
  • 3:Linux側での作業
  • 3.1:パーティションを作成する
  • 3.2:ファイルシステムを作る
  • 4:まとめ

ストレージの容量が足りなくなってきた

@MINOのノートパソコンはWindowsとLinuxのデュアルブートにしてあります。

使う頻度としてはWindowsとLinuxで2:8くらいなので、圧倒的にLinuxを使っている時間が長いです。

そのため、できるだけLinuxの方にストレージ容量を増やしたいです。

@MINOのノートパソコンはもともと256GBのSSDが入っており、そこにWindowsがプリインストールされていました。また128GBのSSDを増設(光学ドライブマウント)してLinuxを入れました。

最初はあまり容量はなくてもいいかと思い容量の低い安いSSDを買ったのですが、ちょっと失敗しました。結構容量が消費されてしまっているのです。

ノートにはまだmSATA端子が残っているのでディスク増設できなくはないのですが、金欠なのでどうしようかなと。

そこで、Windowsが入っている256GBのSSDの空き容量を分離して、Linuxの方で使うことにしました。

256GBSSDからはだいたい50GBの容量を捻出することができました。128GBSSDの空き容量が40GBくらいなので、まあなんとかちょっとの間困らないくらいの容量になりそうです。

Windows側での作業

Windowsにてストレージの空き容量を分離するには「ディスクの管理」を使います。GUIなので簡単に使えると思います。

空き容量を分離したいパーティションを選択して右クリックして「ボリュームの縮小」を選択します。

(スクリーンショット撮った時と作業した時の状況が違うので画像の容量が記事の内容とかみ合っていません。すいません…。)

すると縮小できる空き容量を計算してくれます。

空き容量を全部ギリギリに使うことはできないようで、空き容量全部を分離することは出来ません

あまり空き容量を絞るとWindows側もきつくなりますからね。

空き容量を分離すると「未割り当て」として表示されます。

Linux側での作業

空き容量を開けたらLinuxの方でパーティション作成ファイルシステム作成の作業を行います。

パーティションを作成する

GTPフォーマットになっているので、partedかgdiskを使います。@MINOはなんとなくgdiskの方が好きなのでgdisk使います。対話的にすすめられるので使いやすいと思います。

$sudo gdisk /dev/sdb

まずはpコマンドでディスクの状況を確認します。

Command (? for help): p
Disk /dev/sdb: 488397168 sectors, 232.9 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): E4541975-F2A0-4E6F-8BFD-74301C2140DB
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 488397134
Partitions will be aligned on 2048-sector boundaries
Total free space is 102404397 sectors (48.8 GiB)

空き容量が48.8GiBあることがわかりますね。

次にnコマンドで新しいパーティションを作ります。空き容量全部を一つのパーティションにするので、全部リターンで進めてOKです。

256GBSSDにはすでに5つパーティションが存在していましたので、6つめのパーティション作成となります。

もしファイルシステムを変えたい場合はHex code or GUIDにて指定する必要がありますが、今回はext4にしますので8300のままで進めます。

lコマンドでGUID値を確認することができます。たくさんありますね。

Command (? for help): l               
0700 Microsoft basic data  0c01 Microsoft reserved    2700 Windows RE          
3000 ONIE boot             3001 ONIE config           3900 Plan 9              
4100 PowerPC PReP boot     4200 Windows LDM data      4201 Windows LDM metadata
4202 Windows Storage Spac  7501 IBM GPFS              7f00 ChromeOS kernel     
7f01 ChromeOS root         7f02 ChromeOS reserved     8200 Linux swap          
8300 Linux filesystem      8301 Linux reserved        8302 Linux /home         
8303 Linux x86 root (/)    8304 Linux x86-64 root (/  8305 Linux ARM64 root (/)
8306 Linux /srv            8307 Linux ARM32 root (/)  8400 Intel Rapid Start   
8e00 Linux LVM             a500 FreeBSD disklabel     a501 FreeBSD boot        
a502 FreeBSD swap          a503 FreeBSD UFS           a504 FreeBSD ZFS         
a505 FreeBSD Vinum/RAID    a580 Midnight BSD data     a581 Midnight BSD boot   
a582 Midnight BSD swap     a583 Midnight BSD UFS      a584 Midnight BSD ZFS    
a585 Midnight BSD Vinum    a600 OpenBSD disklabel     a800 Apple UFS           
a901 NetBSD swap           a902 NetBSD FFS            a903 NetBSD LFS          
a904 NetBSD concatenated   a905 NetBSD encrypted      a906 NetBSD RAID         
ab00 Recovery HD           af00 Apple HFS/HFS+        af01 Apple RAID          
af02 Apple RAID offline    af03 Apple label           af04 AppleTV recovery    
af05 Apple Core Storage    bc00 Acronis Secure Zone   be00 Solaris boot        
bf00 Solaris root          bf01 Solaris /usr & Mac Z  bf02 Solaris swap        
bf03 Solaris backup        bf04 Solaris /var          bf05 Solaris /home       
bf06 Solaris alternate se  bf07 Solaris Reserved 1    bf08 Solaris Reserved 2  
Press the  key to see more codes: i
bf09 Solaris Reserved 3    bf0a Solaris Reserved 4    bf0b Solaris Reserved 5  
c001 HP-UX data            c002 HP-UX service         ea00 Freedesktop $BOOT   
eb00 Haiku BFS             ed00 Sony system partitio  ed01 Lenovo system partit
ef00 EFI System            ef01 MBR partition scheme  ef02 BIOS boot partition 
f800 Ceph OSD              f801 Ceph dm-crypt OSD     f802 Ceph journal        
f803 Ceph dm-crypt journa  f804 Ceph disk in creatio  f805 Ceph dm-crypt disk i
fb00 VMWare VMFS           fb01 VMWare reserved       fc00 VMWare kcore crash p
fd00 Linux RAID

この時点ではまだパーティション作成は完了していません。最後にwコマンドで確定するまでは変更も可能です。

Command (? for help): n
Partition number (6-128, default 6): 
First sector (34-488397134, default = 385994752) or {+-}size{KMGTP}: 
Last sector (385994752-488397134, default = 488397134) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'

一応iコマンドで今作ったパーティーションを確認しておきます。内容が問題ないことを確認します。パーティションサイズが最初に確認したとおり、48.8GiBになっています。

Command (? for help): i
Partition number (1-6): 6
Partition GUID code: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (Linux filesystem)
Partition unique GUID: 21B6747B-24DE-43F8-85FC-10A887735668
First sector: 385994752 (at 184.1 GiB)
Last sector: 488397134 (at 232.9 GiB)
Partition size: 102402383 sectors (48.8 GiB)
Attribute flags: 0000000000000000
Partition name: 'Linux filesystem'

問題なければwコマンドでパーティションを確定させます。


Command (? for help): w       

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.

ちゃんと成功しますた。

最後にpコマンドでも確認しておきます。

Command (? for help): p
Disk /dev/sdb: 488397168 sectors, 232.9 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): E4541975-F2A0-4E6F-8BFD-74301C2140DB
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 488397134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          923647   450.0 MiB   2700  Basic data partition
   2          923648         1128447   100.0 MiB   EF00  EFI system partition
   3         1128448         1390591   128.0 MiB   0C01  Microsoft reserved ...
   4         1390592        34158591   15.6 GiB    2700  Basic data partition
   5        34158592       385994751   167.8 GiB   0700  Basic data partition
   6       385994752       488397134   48.8 GiB    8300  Linux filesystem

6番目にLinux filesystemというパーティションが出来ていますね。

ファイルシステムを作る

次にファイルシステムを作ります。mkfsコマンドでext4を指定しました。

$sudo mkfs.ext4 /dev/sdb6
mke2fs 1.43.3 (04-Sep-2016)
Discarding device blocks: done                            
Creating filesystem with 12800297 4k blocks and 3203072 inodes
Filesystem UUID: fe36451c-7f7f-44a1-b77e-2798cdf4b7d4
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done

ファイルシステムが出来ました。これで空き容量がマウントできる状態になりました。

あとはこのパーティションをどのように使うかは自由です。

まとめ

もうちょっと多い容量のSSD買えばよかったなと思いつつ、使える資源は工夫して使うのもLinuxを使っている醍醐味かなとも思っています。

今回は紹介しませんでしたが、LVMなどでディスクをまとめて使うのもアリですね。

もし記事にできれば紹介したいと思っています。