Здравствуйте. Использую на работе KANOTIX, LiveUSB на основе Debian Lenny. Решил я как-то скомпилировать программу, а она компилируется только в GCC 4.5 и старше. Ладно, скомпилировал GMP 5.0.2 (version 4.3.2 or later), MPFR 3.0.1 (version 2.4.2 or later), MPC 0.9 (0.8.1 or later), PPL 0.11.2 (version 0.11 or later), Cloog 0.16 (CLooG-PPL version 0.15 or CLooG 0.16). Это были зависимости. Готовлюсь компилировать GCC 4.5.3 и понимаю, что 500 свободных мегабайт на виртуальном диске не хватит для компиляции. Решил создать swap-файл на разделе NTFS.
kanotix@Kanotix:~$ cd /media/disk/
kanotix@Kanotix:/media/disk$ dd if=/dev/zero of=swap.img bs=1M count=512
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 30.3254 s, 17.7 MB/s
kanotix@Kanotix:/media/disk$ sudo swapon /media/disk/swap.img
swapon: Skipping file /media/disk/swap.img - it appears to have holes.
kanotix@Kanotix:/media/disk$ /sbin/mkswap /media/disk/swap.img
Setting up swapspace version 1, size = 536866 kB
no label, UUID=3788e05d-3661-425c-a922-7bdac05760d8
mkswap: /media/disk/swap.img: unable to write signature page: Operation not supported
kanotix@Kanotix:/media/disk$ sudo /sbin/mkswap /media/disk/swap.img
Setting up swapspace version 1, size = 536866 kB
no label, UUID=e5ce4fcd-0076-42ed-be12-110cf9c14132
mkswap: /media/disk/swap.img: unable to write signature page: Operation not supported
kanotix@Kanotix:/media/disk$ sudo /sbin/mkswap --help
Usage: mkswap [-c] [-v0|-v1] [-pPAGESZ] [-L label] [-U UUID] /dev/name [blocks]
kanotix@Kanotix:/media/disk$ dd if=/dev/zero of=extra-swap bs=1M count=256
256+0 records in
256+0 records out
268435456 bytes (268 MB) copied, 12.729 s, 21.1 MB/s
kanotix@Kanotix:/media/disk$ sudo /sbin/mkswap /media/disk/extra-swap
Setting up swapspace version 1, size = 268431 kB
no label, UUID=281d6634-cafa-41e7-acdf-804711045cf4
mkswap: /media/disk/extra-swap: unable to write signature page: Operation not supported
kanotix@Kanotix:/media/disk$ susudo swapon /media/disk/extra-swap
swapon: Skipping file /media/disk/extra-swap - it appears to have holes.
Создал файл размером 512 мегабайтов, забитый нулями. Попробовал сразу подключить, забыв создать файловую систему - разумеется не подключилось. Создаю файловую систему - вижу ошибку! Разумеется, ничего не создалось и подключить тоже не получается.
Тогда я решил создать раздел ext2 в файле, туда распаковать архив с gcc и всё сделать.
kanotix@Kanotix:/media/disk$ dd if=/dev/zero of=extra-swap bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 78.3449 s, 13.7 MB/s
kanotix@Kanotix:/media/disk$ sudo mkfs.ext2 /media/disk/extra-swap
mke2fs 1.41.3 (12-Oct-2008)
/media/disk/extra-swap is not a block special device.
Proceed anyway? (y,n) y
Warning: could not erase sector 2: Attempt to write block from filesystem resulted in short write
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Warning: could not erase sector 0: Attempt to write block from filesystem resulted in short write
mkfs.ext2: Attempt to write block from filesystem resulted in short write while zeroing block 262128 at end of filesystem
Writing inode tables: 0/8
Could not write 5 blocks in inode table starting at 67: Attempt to write block from filesystem resulted in short write
kanotix@Kanotix:/media/disk$ sudo mkdir /mnt/1
kanotix@Kanotix:/media/disk$ sudo mount -t ext2 /media/disk/extra-swap -o loop /mnt/1
mount: wrong fs type, bad option, bad superblock on /dev/loop1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
kanotix@Kanotix:/media/disk$
Что это было, почему, и как исправить? Домой с работы через час.