Bug in bsdinstall (fs found where not present)
Warren Block
wblock at wonkity.com
Fri Aug 30 12:46:51 UTC 2013
On Thu, 29 Aug 2013, Nathan Whitehorn wrote:
> On 08/29/13 17:02, Warren Block wrote:
>> On Thu, 29 Aug 2013, Nathan Whitehorn wrote:
>>
>>> On 08/29/13 14:04, Warren Block wrote:
>>>>> From a 9.2-PRERELEASE snapshot, go into the shell, create a GPT disk
>>>> layout with a bunch of partitions for filesystems and swap. Exit the
>>>> shell and run the installer.
>>>>
>>>> Go through each partition setting a mount point. Tell bsdinstall to
>>>> continue. It reports that the / partition has a preexisting
>>>> filesystem (it does not, in fact; this disk had a mishmash of MBR and
>>>> NTFS on it).
>>>>
>>>> Tell bsdinstall to continue anyway. It does, and then reports that it
>>>> can't mount /dev/ada0p2 on /mnt, presumably because, contrary to the
>>>> misleading and incorrect error message, there is no filesystem on
>>>> there.
>>>>
>>>> The install fails, try again, entering all the mount points, and it
>>>> will fail the same.
>>>>
>>>> Short term solution: newfs the / partition, so there really is a
>>>> filesystem there for bsdinstall to detect and warn about. Then it
>>>> works.
>>>
>>> bsdinstall has no way to detect whether or not you already have UFS in a
>>> freebsd-ufs file system. It assumes, when not given contrary
>>> information, that a partition that exists is initialized. There does not
>>> seem to be a way around this. If you have any ideas, those would of
>>> course be helpful.
>>
>> file(1) works well for detecting filesystems.
>>
>> For that matter, what is bsdinstall doing now that makes it say there
>> is a filesystem on a partition? Maybe the message is misleading.
>
> What that actually means is that the partition exists. (file doesn't
> work on block devices, by the way)
-s is needed for special files:
# file -s /dev/ada0p2
/dev/ada0p2: Unix Fast File system [v2] (little-endian) last mounted ...
To identify some common cases, I've been using this for a while:
# return a file type string for a devnode
fstype () {
case `file -s $1 | egrep -o 'FAT|NTFS|EXT2|ISO 9660|Unix Fast File system' | tr ' ' _` in
FAT*)
printf "msdosfs" ;;
NTFS*)
printf "ntfs" ;;
EXT2*)
printf "ext2fs" ;;
ISO_9660*)
printf "cd9660" ;;
Unix_Fast_File_system*)
printf "ufs" ;;
esac
}
More information about the freebsd-sysinstall
mailing list