예제 #1
0
/// read super block and write to image head
extern void initial_image_hdr(char* device, image_head* image_hdr)
{
    int fs_type = 0;
    fs_type = test_extfs_type(device);
    log_mesg(1, 0, 0, fs_opt.debug, "%s: extfs version is %i\n", __FILE__, fs_type);
    strncpy(image_hdr->magic, IMAGE_MAGIC, IMAGE_MAGIC_SIZE);
    strncpy(image_hdr->fs, extfs_MAGIC, FS_MAGIC_SIZE);
    fs_open(device);
    image_hdr->block_size = (int)block_size();
    image_hdr->totalblock = (unsigned long long)block_count();
    image_hdr->usedblocks = (unsigned long long)get_used_blocks();
    image_hdr->device_size = (unsigned long long)(image_hdr->block_size * image_hdr->totalblock);
    fs_close();
}
예제 #2
0
void read_super_blocks(char* device, file_system_info* fs_info)
{
    int fs_type = 0;
    fs_type = test_extfs_type(device);
    log_mesg(1, 0, 0, fs_opt.debug, "%s: extfs version is %i\n", __FILE__, fs_type);
    strncpy(fs_info->fs, extfs_MAGIC, FS_MAGIC_SIZE);
    fs_open(device);
    fs_info->block_size  = block_size();
    fs_info->totalblock  = block_count();
    fs_info->usedblocks  = get_used_blocks();
    fs_info->device_size = fs_info->block_size * fs_info->totalblock;

    log_mesg(1, 0, 0, fs_opt.debug, "%s: extfs block_size %i\n", __FILE__,    fs_info->block_size);
    log_mesg(1, 0, 0, fs_opt.debug, "%s: extfs total block %lli\n", __FILE__, fs_info->totalblock);
    log_mesg(1, 0, 0, fs_opt.debug, "%s: extfs used blocks %lli\n", __FILE__, fs_info->usedblocks);
    log_mesg(1, 0, 0, fs_opt.debug, "%s: extfs device size %lli\n", __FILE__, fs_info->device_size);

    fs_close();
}