まずはディスク使用量の確認とswapパーティションの状態チェックを行う。問題の/homeの使用率は3%(216MB)。/homeと同じディスク(/dev/hda)にある優先度の最も低いスワップパーティションは/dev/hda8で、ほとんど使用されていないことがわかる。そこで、/dev/hda8をスワップとして使用せずに、/homeをマウントする領域として使用することを考える。
# df -h Filesystem Size Used Avail Use% Mounted on /dev/hda2 259M 117M 129M 48% / tmpfs 62M 0 62M 0% /lib/init/rw udev 10M 120K 9.9M 2% /dev tmpfs 62M 0 62M 0% /dev/shm /dev/hda12 8.2G 216M 7.6G 3% /home /dev/hda11 373M 11M 343M 3% /tmp /dev/hda9 4.6G 2.4G 2.1G 54% /usr /dev/hda10 2.8G 284M 2.4G 11% /var /dev/md0 17G 13G 2.7G 83% /home/hoge # cat /proc/swaps Filename Type Size Used Priority /dev/hda5 partition 1959856 14388 9 /dev/hda6 partition 1959888 0 2 /dev/hda7 partition 1959888 0 1 /dev/hda8 partition 1943824 0 0 /dev/hdb1 partition 1959888 14428 9 /dev/hdd1 partition 1953464 14424 9
初めに/dev/hda8のマウントを解除し、その確認。/dev/hda8がスワップ領域としてマウントされなくなった。
# swapoff /dev/hda8 # cat /proc/swaps Filename Type Size Used Priority /dev/hda5 partition 1959856 14396 9 /dev/hda6 partition 1959888 0 2 /dev/hda7 partition 1959888 0 1 /dev/hdb1 partition 1959888 14432 9 /dev/hdd1 partition 1953464 14428 9
ただしこのままでは再起動時に改めて/dev/hda8がスワップ領域としてマウントされてしまう。そのため、/etc/fstabの/dev/hda8のラインをコメントアウトしておく。
# grep swap /etc/fstab /dev/hda5 none swap sw,pri=9 0 0 /dev/hda6 none swap sw,pri=2 0 0 /dev/hda7 none swap sw,pri=1 0 0 /dev/hda8 none swap sw,pri=0 0 0 /dev/hdb1 none swap sw,pri=9 0 0 /dev/hdd1 none swap sw,pri=9 0 0 # vi /etc/fstab # grep swap /etc/fstab /dev/hda5 none swap sw,pri=9 0 0 /dev/hda6 none swap sw,pri=2 0 0 /dev/hda7 none swap sw,pri=1 0 0 #/dev/hda8 none swap sw,pri=0 0 0 /dev/hdb1 none swap sw,pri=9 0 0 /dev/hdd1 none swap sw,pri=9 0 0
- swapon fstab - Google 検索
- Fedora JP 掲示板
- スワップ領域を有効化する「swapon」 - ubuntu日記
- swapon - システム管理コマンドの説明 - Linux コマンド集 一覧表
- Manpage of SWAPON
/dev/hda8を通常のext3パーティションとして使用するためには、パーティションタイプの変更と、ファイルシステムを構築が必要である。まずはパーティションタイプのチェックと変更。当然ながら、/dev/hda8はswapパーティションとしてタイプ付けされているのでこれをlinuxパーティションに変更する。再起動を促されるが再起動しない、その代わりにpartprobeしておく。fedora系のディストリビューションではpartprobeコマンドでカーネルに最新のパーティションテーブルを教えることが出来るので再起動の必要が無いそうだ。debian etch以降にはpartedパッケージ内にpartprobコマンドが含まれる。カーネルの領域テーブルを確認する方法を僕は知らないので、partprobが正しくカーネルの領域テーブルを書き換えたのかは不明。暇が出来たら再起動しておこう。
# fdisk -l /dev/hda Disk /dev/hda: 25.5 GB, 25590620160 bytes 255 heads, 63 sectors/track, 3111 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x79564cf0 Device Boot Start End Blocks Id System /dev/hda1 1 3077 24715971 5 Extended /dev/hda2 * 3078 3111 273105 83 Linux /dev/hda5 1 244 1959867 82 Linux swap / Solaris /dev/hda6 245 488 1959898+ 82 Linux swap / Solaris /dev/hda7 489 732 1959898+ 82 Linux swap / Solaris /dev/hda8 733 974 1943833+ 82 Linux swap / Solaris /dev/hda9 975 1582 4883728+ 83 Linux /dev/hda10 1583 1947 2931831 83 Linux /dev/hda11 1948 1996 393561 83 Linux /dev/hda12 1997 3077 8683101 83 Linux # fdisk /dev/hda The number of cylinders for this disk is set to 3111. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/hda: 25.5 GB, 25590620160 bytes 255 heads, 63 sectors/track, 3111 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x79564cf0 Device Boot Start End Blocks Id System /dev/hda1 1 3077 24715971 5 Extended /dev/hda2 * 3078 3111 273105 83 Linux /dev/hda5 1 244 1959867 82 Linux swap / Solaris /dev/hda6 245 488 1959898+ 82 Linux swap / Solaris /dev/hda7 489 732 1959898+ 82 Linux swap / Solaris /dev/hda8 733 974 1943833+ 82 Linux swap / Solaris /dev/hda9 975 1582 4883728+ 83 Linux /dev/hda10 1583 1947 2931831 83 Linux /dev/hda11 1948 1996 393561 83 Linux /dev/hda12 1997 3077 8683101 83 Linux Command (m for help): t Partition number (1-12): 8 Hex code (type L to list codes): L 0 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot 1 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris 2 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 83 Linux c4 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c6 DRDOS/sec (FAT- 5 Extended 41 PPC PReP Boot 85 Linux extended c7 Syrinx 6 FAT16 42 SFS 86 NTFS volume set da Non-FS data 7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set db CP/M / CTOS / . 8 AIX 4e QNX4.x 2nd part 88 Linux plaintext de Dell Utility 9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIt a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT 10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/ 11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b 12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f4 SpeedStor 16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT 1c Hidden W95 FAT3 75 PC/IX Hex code (type L to list codes): 83 Changed system type of partition 8 to 83 (Linux) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot. Syncing disks. # fdisk -l /dev/hda Disk /dev/hda: 25.5 GB, 25590620160 bytes 255 heads, 63 sectors/track, 3111 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x79564cf0 Device Boot Start End Blocks Id System /dev/hda1 1 3077 24715971 5 Extended /dev/hda2 * 3078 3111 273105 83 Linux /dev/hda5 1 244 1959867 82 Linux swap / Solaris /dev/hda6 245 488 1959898+ 82 Linux swap / Solaris /dev/hda7 489 732 1959898+ 82 Linux swap / Solaris /dev/hda8 733 974 1943833+ 83 Linux /dev/hda9 975 1582 4883728+ 83 Linux /dev/hda10 1583 1947 2931831 83 Linux /dev/hda11 1948 1996 393561 83 Linux /dev/hda12 1997 3077 8683101 83 Linux # aptitude -R install parted # partprobe
- linux fdisk - Google 検索
- Manpage of FDISK
- fdiskの操作方法
- システム管理/fdiskを使う - Vine Linuxワークステーション
- linux fdisk 再起動 - Google 検索
- fdiskコマンドで領域テーブルの再読み込みに失敗したら - @IT
- Debian -- パッケージのファイル一覧: parted/lenny/i386
パーティションタイプの変更と領域テーブルの再読み込みが終わったらファイルシステムを作成する。このときついでに不良ブロックのテスト(-c)もしておく。
debian:~# mkfs.ext3 -c /dev/hda8 mke2fs 1.41.3 (12-Oct-2008) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 121680 inodes, 485958 blocks 24297 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=499122176 15 block groups 32768 blocks per group, 32768 fragments per group 8112 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Checking for bad blocks (read-only test): done Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 34 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
- Manpage of MKFS
- linux home 移動 - Google 検索
- パーティションの活用: /home の移動編
- ITmedia エンタープライズ : Linux Tips「「/home/」などのディレクトリを,ほかのドライブ(パーティション)に移動したい」
で、シャットダウン。シングルユーザモードで起動。
# shutdown -h now
/dev/hda8を/homeとしてマウントするようにfstabを書き換え。
# vi /etc/fstab # grep -e 'hda12' -e 'hda8' /etc/fstab #/dev/hda12 /home ext3 defaults 0 2 /dev/hda8 /home ext3 defaults 0 2 #/dev/hda8 none swap sw,pri=0 0 0
さらに再起動。再起動の後に正しくマウントされているかどうかのチェック。
$ cat /proc/swaps Filename Type Size Used Priority /dev/hda5 partition 1959856 0 9 /dev/hda6 partition 1959888 0 2 /dev/hda7 partition 1959888 0 1 /dev/hdb1 partition 1959888 0 9 /dev/hdd1 partition 1953464 0 9 $ df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/hda2 259M 117M 129M 48% / tmpfs 62M 0 62M 0% /lib/init/rw udev 10M 120K 9.9M 2% /dev tmpfs 62M 0 62M 0% /dev/shm /dev/hda8 1.9G 104M 1.7G 6% /home /dev/hda11 373M 11M 343M 3% /tmp /dev/hda9 4.6G 2.4G 2.1G 54% /usr /dev/hda10 2.8G 285M 2.4G 11% /var /dev/md0 17G 14G 2.1G 88% /home/hoge
確かに2GBの領域が/homeとしてマウントされ、これまであった/dev/hda8のスワップパーティションはなくなっている。これで完了。